tudata


Nametudata JSON
Version 1.0.3 PyPI version JSON
download
home_pageNone
SummaryA Python library for accessing Tushare financial data through optimized API
upload_time2025-09-03 08:36:36
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseNone
keywords finance data tushare stock market
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # TuData

A Python library for accessing Tushare financial data through optimized API.

## Features

- 🚀 **Optimized Performance**: Built-in connection pooling and retry mechanisms
- 📊 **Comprehensive Data**: Access to stocks, funds, futures, options, and cryptocurrency data
- 🔧 **Easy to Use**: Simple and intuitive API interface
- 🛡️ **Robust**: Automatic error handling and retry logic
- 📈 **Real-time**: Support for real-time and historical financial data

## Installation

```bash
pip install tudata
```

## Quick Start

### 1. Set Your Token

```python
import tudata as ts

# Set your Tushare token (only need to do this once)
ts.set_token('your_tushare_token_here')
```

### 2. Initialize API Client

```python
# Initialize the API client
api = ts.pro_api()

# Or initialize with token directly
api = ts.pro_api(token='your_token_here')
```

### 3. Fetch Data

```python
# Get stock basic information
stocks = api.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
print(stocks.head())

# Get daily trading data
daily_data = api.daily(ts_code='000001.SZ', start_date='20240101', end_date='20241201')
print(daily_data.head())

# Get trading calendar
cal = api.trade_cal(exchange='', start_date='20240101', end_date='20241201')
print(cal.head())
```

### 4. Use Pro Bar for Time Series Data

```python
# Get historical price data with pro_bar
df = ts.pro_bar(ts_code='000001.SZ', start_date='20240101', end_date='20241201', freq='D')
print(df.head())
```

## API Reference

### Core Classes

#### `pro_api`

The main API client class for accessing Tushare data.

```python
api = ts.pro_api(token=None)
```

**Parameters:**
- `token` (str, optional): Your Tushare API token. If not provided, will use stored token.

#### Main Methods

##### Stock Data
- `stock_basic(**kwargs)` - Get basic stock information
- `daily(**kwargs)` - Get daily trading data
- `weekly(**kwargs)` - Get weekly trading data  
- `monthly(**kwargs)` - Get monthly trading data
- `adj_factor(**kwargs)` - Get adjustment factors
- `daily_basic(**kwargs)` - Get daily basic trading metrics

##### Financial Statements
- `income(**kwargs)` - Get income statement data
- `balancesheet(**kwargs)` - Get balance sheet data  
- `cashflow(**kwargs)` - Get cash flow statement data
- `fina_indicator(**kwargs)` - Get financial indicators

##### Market Data
- `moneyflow(**kwargs)` - Get money flow data
- `top_list(**kwargs)` - Get top gainers/losers
- `limit_list_d(**kwargs)` - Get daily limit up/down stocks

##### Index Data
- `index_basic(**kwargs)` - Get index basic information
- `index_daily(**kwargs)` - Get index daily data
- `index_weight(**kwargs)` - Get index constituent weights

##### Fund Data
- `fund_basic(**kwargs)` - Get fund basic information
- `fund_nav(**kwargs)` - Get fund net asset value
- `fund_daily(**kwargs)` - Get fund daily trading data

##### And many more...

### Utility Functions

#### `set_token(token)`
Store your Tushare API token locally.

**Parameters:**
- `token` (str): Your Tushare API token

#### `get_token()`
Retrieve the stored Tushare API token.

**Returns:**
- `str`: The stored token, or None if not set

#### `pro_bar(ts_code, start_date, end_date, freq='D', **kwargs)`
Get time series data with enhanced functionality.

**Parameters:**
- `ts_code` (str): Stock code (e.g., '000001.SZ')
- `start_date` (str): Start date in 'YYYYMMDD' format
- `end_date` (str): End date in 'YYYYMMDD' format  
- `freq` (str): Data frequency ('D', 'W', 'M', etc.)

## Configuration

### Connection Settings

The library includes optimized connection settings:

- **Connection Pooling**: 10 connections with max 20 connections
- **Retry Logic**: Automatic retry on 500, 502, 503, 504 errors
- **Timeouts**: 5 seconds connection timeout, 30 seconds read timeout

### Error Handling

The library automatically handles:

- Network timeouts and retries
- Invalid token errors
- Rate limiting
- JSON parsing errors

## Examples

### Get Stock List

```python
import tudata as ts

api = ts.pro_api()

# Get all listed stocks
stocks = api.stock_basic(list_status='L')
print(f"Total stocks: {len(stocks)}")
print(stocks[['ts_code', 'name', 'industry']].head())
```

### Get Historical Prices

```python
# Get 1 year of daily data for a specific stock
data = api.daily(
    ts_code='000001.SZ',
    start_date='20230101', 
    end_date='20231231'
)

print(data[['trade_date', 'open', 'high', 'low', 'close', 'vol']].head())
```

### Get Financial Indicators

```python
# Get financial indicators for a stock
indicators = api.fina_indicator(
    ts_code='000001.SZ',
    start_date='20230101',
    end_date='20231231'
)

print(indicators[['end_date', 'roe', 'roa', 'eps']].head())
```

### Real-time Data

```python
# Get real-time quotes (requires special permission)
quotes = api.realtime_quote(ts_code='000001.SZ,000002.SZ')
print(quotes)
```

## Requirements

- Python 3.7+
- pandas >= 1.0.0
- requests >= 2.25.0
- urllib3 >= 1.26.0

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## Support

If you encounter any issues or have questions, please file an issue on the GitHub repository.

## Disclaimer

This library is for educational and research purposes. Please ensure you comply with Tushare's terms of service and any applicable financial data regulations. 

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "tudata",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "fuconx <contact@tudata.com>",
    "keywords": "finance, data, tushare, stock, market",
    "author": null,
    "author_email": "fuconx <contact@tudata.com>",
    "download_url": "https://files.pythonhosted.org/packages/cb/4f/b719e4d3026eea2f95465cea54854b4aed6853d0a6cabd165214cfe9b1de/tudata-1.0.3.tar.gz",
    "platform": null,
    "description": "# TuData\r\n\r\nA Python library for accessing Tushare financial data through optimized API.\r\n\r\n## Features\r\n\r\n- \ud83d\ude80 **Optimized Performance**: Built-in connection pooling and retry mechanisms\r\n- \ud83d\udcca **Comprehensive Data**: Access to stocks, funds, futures, options, and cryptocurrency data\r\n- \ud83d\udd27 **Easy to Use**: Simple and intuitive API interface\r\n- \ud83d\udee1\ufe0f **Robust**: Automatic error handling and retry logic\r\n- \ud83d\udcc8 **Real-time**: Support for real-time and historical financial data\r\n\r\n## Installation\r\n\r\n```bash\r\npip install tudata\r\n```\r\n\r\n## Quick Start\r\n\r\n### 1. Set Your Token\r\n\r\n```python\r\nimport tudata as ts\r\n\r\n# Set your Tushare token (only need to do this once)\r\nts.set_token('your_tushare_token_here')\r\n```\r\n\r\n### 2. Initialize API Client\r\n\r\n```python\r\n# Initialize the API client\r\napi = ts.pro_api()\r\n\r\n# Or initialize with token directly\r\napi = ts.pro_api(token='your_token_here')\r\n```\r\n\r\n### 3. Fetch Data\r\n\r\n```python\r\n# Get stock basic information\r\nstocks = api.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')\r\nprint(stocks.head())\r\n\r\n# Get daily trading data\r\ndaily_data = api.daily(ts_code='000001.SZ', start_date='20240101', end_date='20241201')\r\nprint(daily_data.head())\r\n\r\n# Get trading calendar\r\ncal = api.trade_cal(exchange='', start_date='20240101', end_date='20241201')\r\nprint(cal.head())\r\n```\r\n\r\n### 4. Use Pro Bar for Time Series Data\r\n\r\n```python\r\n# Get historical price data with pro_bar\r\ndf = ts.pro_bar(ts_code='000001.SZ', start_date='20240101', end_date='20241201', freq='D')\r\nprint(df.head())\r\n```\r\n\r\n## API Reference\r\n\r\n### Core Classes\r\n\r\n#### `pro_api`\r\n\r\nThe main API client class for accessing Tushare data.\r\n\r\n```python\r\napi = ts.pro_api(token=None)\r\n```\r\n\r\n**Parameters:**\r\n- `token` (str, optional): Your Tushare API token. If not provided, will use stored token.\r\n\r\n#### Main Methods\r\n\r\n##### Stock Data\r\n- `stock_basic(**kwargs)` - Get basic stock information\r\n- `daily(**kwargs)` - Get daily trading data\r\n- `weekly(**kwargs)` - Get weekly trading data  \r\n- `monthly(**kwargs)` - Get monthly trading data\r\n- `adj_factor(**kwargs)` - Get adjustment factors\r\n- `daily_basic(**kwargs)` - Get daily basic trading metrics\r\n\r\n##### Financial Statements\r\n- `income(**kwargs)` - Get income statement data\r\n- `balancesheet(**kwargs)` - Get balance sheet data  \r\n- `cashflow(**kwargs)` - Get cash flow statement data\r\n- `fina_indicator(**kwargs)` - Get financial indicators\r\n\r\n##### Market Data\r\n- `moneyflow(**kwargs)` - Get money flow data\r\n- `top_list(**kwargs)` - Get top gainers/losers\r\n- `limit_list_d(**kwargs)` - Get daily limit up/down stocks\r\n\r\n##### Index Data\r\n- `index_basic(**kwargs)` - Get index basic information\r\n- `index_daily(**kwargs)` - Get index daily data\r\n- `index_weight(**kwargs)` - Get index constituent weights\r\n\r\n##### Fund Data\r\n- `fund_basic(**kwargs)` - Get fund basic information\r\n- `fund_nav(**kwargs)` - Get fund net asset value\r\n- `fund_daily(**kwargs)` - Get fund daily trading data\r\n\r\n##### And many more...\r\n\r\n### Utility Functions\r\n\r\n#### `set_token(token)`\r\nStore your Tushare API token locally.\r\n\r\n**Parameters:**\r\n- `token` (str): Your Tushare API token\r\n\r\n#### `get_token()`\r\nRetrieve the stored Tushare API token.\r\n\r\n**Returns:**\r\n- `str`: The stored token, or None if not set\r\n\r\n#### `pro_bar(ts_code, start_date, end_date, freq='D', **kwargs)`\r\nGet time series data with enhanced functionality.\r\n\r\n**Parameters:**\r\n- `ts_code` (str): Stock code (e.g., '000001.SZ')\r\n- `start_date` (str): Start date in 'YYYYMMDD' format\r\n- `end_date` (str): End date in 'YYYYMMDD' format  \r\n- `freq` (str): Data frequency ('D', 'W', 'M', etc.)\r\n\r\n## Configuration\r\n\r\n### Connection Settings\r\n\r\nThe library includes optimized connection settings:\r\n\r\n- **Connection Pooling**: 10 connections with max 20 connections\r\n- **Retry Logic**: Automatic retry on 500, 502, 503, 504 errors\r\n- **Timeouts**: 5 seconds connection timeout, 30 seconds read timeout\r\n\r\n### Error Handling\r\n\r\nThe library automatically handles:\r\n\r\n- Network timeouts and retries\r\n- Invalid token errors\r\n- Rate limiting\r\n- JSON parsing errors\r\n\r\n## Examples\r\n\r\n### Get Stock List\r\n\r\n```python\r\nimport tudata as ts\r\n\r\napi = ts.pro_api()\r\n\r\n# Get all listed stocks\r\nstocks = api.stock_basic(list_status='L')\r\nprint(f\"Total stocks: {len(stocks)}\")\r\nprint(stocks[['ts_code', 'name', 'industry']].head())\r\n```\r\n\r\n### Get Historical Prices\r\n\r\n```python\r\n# Get 1 year of daily data for a specific stock\r\ndata = api.daily(\r\n    ts_code='000001.SZ',\r\n    start_date='20230101', \r\n    end_date='20231231'\r\n)\r\n\r\nprint(data[['trade_date', 'open', 'high', 'low', 'close', 'vol']].head())\r\n```\r\n\r\n### Get Financial Indicators\r\n\r\n```python\r\n# Get financial indicators for a stock\r\nindicators = api.fina_indicator(\r\n    ts_code='000001.SZ',\r\n    start_date='20230101',\r\n    end_date='20231231'\r\n)\r\n\r\nprint(indicators[['end_date', 'roe', 'roa', 'eps']].head())\r\n```\r\n\r\n### Real-time Data\r\n\r\n```python\r\n# Get real-time quotes (requires special permission)\r\nquotes = api.realtime_quote(ts_code='000001.SZ,000002.SZ')\r\nprint(quotes)\r\n```\r\n\r\n## Requirements\r\n\r\n- Python 3.7+\r\n- pandas >= 1.0.0\r\n- requests >= 2.25.0\r\n- urllib3 >= 1.26.0\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the LICENSE file for details.\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request.\r\n\r\n## Support\r\n\r\nIf you encounter any issues or have questions, please file an issue on the GitHub repository.\r\n\r\n## Disclaimer\r\n\r\nThis library is for educational and research purposes. Please ensure you comply with Tushare's terms of service and any applicable financial data regulations. \r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Python library for accessing Tushare financial data through optimized API",
    "version": "1.0.3",
    "project_urls": {
        "Bug Tracker": "https://github.com/fuconx/tudata/issues",
        "Documentation": "https://tudata.readthedocs.io",
        "Homepage": "https://github.com/fuconx/tudata",
        "Repository": "https://github.com/fuconx/tudata.git"
    },
    "split_keywords": [
        "finance",
        " data",
        " tushare",
        " stock",
        " market"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9bec7955c1eb0e218dcdd8c65bb7be09a1ac3ecf40d7f6878061a6cf697235e2",
                "md5": "9f443a3e5d3f9285ad181c9d3ccd2b90",
                "sha256": "2c5bbdedfe80eb6e666ccfcc5f97b5063556e8011522a0c812eb55d62b07036e"
            },
            "downloads": -1,
            "filename": "tudata-1.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9f443a3e5d3f9285ad181c9d3ccd2b90",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 10524,
            "upload_time": "2025-09-03T08:36:34",
            "upload_time_iso_8601": "2025-09-03T08:36:34.585954Z",
            "url": "https://files.pythonhosted.org/packages/9b/ec/7955c1eb0e218dcdd8c65bb7be09a1ac3ecf40d7f6878061a6cf697235e2/tudata-1.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cb4fb719e4d3026eea2f95465cea54854b4aed6853d0a6cabd165214cfe9b1de",
                "md5": "edec4fc917e98cb1bcbcef319e2a1775",
                "sha256": "f801aef523aa6ee00611f24edaf4e65f4e428aed5a1067a926c4ef2a7ad86915"
            },
            "downloads": -1,
            "filename": "tudata-1.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "edec4fc917e98cb1bcbcef319e2a1775",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 24864,
            "upload_time": "2025-09-03T08:36:36",
            "upload_time_iso_8601": "2025-09-03T08:36:36.141500Z",
            "url": "https://files.pythonhosted.org/packages/cb/4f/b719e4d3026eea2f95465cea54854b4aed6853d0a6cabd165214cfe9b1de/tudata-1.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-03 08:36:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "fuconx",
    "github_project": "tudata",
    "github_not_found": true,
    "lcname": "tudata"
}
        
Elapsed time: 2.07399s