Metadata-Version: 2.4
Name: jing
Version: 0.3.1
Summary: Download stock data and perform data analisys
Author-email: sai <sai@gmail.com>
License: MIT
Keywords: jing,sai,stock
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: requests
Requires-Dist: pandas
Requires-Dist: baostock
Requires-Dist: yfinance
Requires-Dist: akshare
Requires-Dist: binance-connector
Requires-Dist: importlib-metadata; python_version < "3.10"

# jing

This is a python library, used for download stock data and perform data analysis.

## Installation

```bash
pip install jing
```

All required dependencies (`requests`, `pandas`, `baostock`, `yfinance`, `akshare`, `binance-connector`) will be installed automatically.

## Usage

Only 2 classes are exported.

### downloader `D`
- **Function**: download the data from internet to local file system
- **Parameter**:
  - `_market` (str): us, cn, hk, default is us
- **Return Value**: No return value

### sample code

```python
import jing

d = jing.D(_market='hk')
d.download('00005')

d = jing.D(_market='cn', _source='akshare')
d.download('600519')
```

## Data layout

The project now uses a source-first layout under `data/`:

```text
data/
  raw/
    yahoo/us/
    baostock/cn/
    akshare/cn/
    akshare/hk/
    binance/bn/
    list/
  parquet/
  duckdb/
```

Examples:

- US Yahoo CSV: `data/raw/yahoo/us/AAPL.csv`
- CN BaoStock CSV: `data/raw/baostock/cn/sh.601088.csv`
- HK AkShare CSV: `data/raw/akshare/hk/00700.csv`
- list files: `data/raw/list/us.txt`

## Release to PyPI

1. Bump the version in `pyproject.toml`:
   ```toml
   version = "0.3.1"
   ```

2. Build the distribution packages:
   ```bash
   python -m build
   ```

3. Upload to PyPI:
   ```bash
   python -m twine upload dist/*
   ```

   > You will need a PyPI account and [API token](https://pypi.org/manage/account/token/). Configure twine once with `python -m twine upload --repository testpypi dist/*` to test first if desired.
