qlib-sync 0.1.0__tar.gz → 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/PKG-INFO +9 -7
  2. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/README.md +8 -6
  3. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/README.zh-CN.md +7 -6
  4. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/mcpb/manifest.json +1 -1
  5. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/mcpb/pyproject.toml +2 -2
  6. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/pyproject.toml +1 -1
  7. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/server.json +18 -4
  8. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/skills/qlib-sync/SKILL.md +1 -1
  9. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/src/qlib_sync/__init__.py +1 -1
  10. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/src/qlib_sync/mcp_server.py +1 -1
  11. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/.gitignore +0 -0
  12. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/LICENSE +0 -0
  13. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/docs/scheduling.md +0 -0
  14. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/mcpb/.mcpbignore +0 -0
  15. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/mcpb/src/server.py +0 -0
  16. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/src/qlib_sync/api.py +0 -0
  17. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/src/qlib_sync/cli.py +0 -0
  18. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/src/qlib_sync/cn/__init__.py +0 -0
  19. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/src/qlib_sync/cn/market.py +0 -0
  20. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/src/qlib_sync/cn/update.py +0 -0
  21. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/src/qlib_sync/txn.py +0 -0
  22. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/tests/test_api.py +0 -0
  23. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/tests/test_cli.py +0 -0
  24. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/tests/test_cn_market.py +0 -0
  25. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/tests/test_mcp_server.py +0 -0
  26. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/tests/test_release_metadata.py +0 -0
  27. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/tests/test_txn.py +0 -0
  28. {qlib_sync-0.1.0 → qlib_sync-0.1.1}/tools/demo/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: qlib-sync
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Safely install and update a local Qlib China A-share dataset, with an MCP server for AI assistants.
5
5
  Project-URL: Homepage, https://github.com/randyy179/qlib-sync
6
6
  Project-URL: Issues, https://github.com/randyy179/qlib-sync/issues
@@ -46,7 +46,9 @@ pip install qlib-sync
46
46
  qlib-sync cn update
47
47
  ```
48
48
 
49
- Or without installing anything first: `uvx qlib-sync cn update`.
49
+ Or without installing anything first: `uvx --python 3.12 qlib-sync cn update`.
50
+ (`--python 3.12` because pyqlib publishes wheels up to Python 3.12; uv fetches that Python
51
+ for you if needed. With pip, use Python 3.10 to 3.12.)
50
52
 
51
53
  ![qlib-sync updating the dataset: status, download with progress, checksum, summary, then an instant no-op](https://raw.githubusercontent.com/randyy179/qlib-sync/main/docs/assets/demo-update.gif)
52
54
 
@@ -150,17 +152,17 @@ Every client needs the same two things: the command `uvx` and the arguments `qli
150
152
  | Client | How to add qlib-sync |
151
153
  |---|---|
152
154
  | Claude Desktop | Download `qlib-sync.mcpb` from the [latest release](https://github.com/randyy179/qlib-sync/releases/latest) and open it |
153
- | Claude Code | `claude mcp add qlib-sync -- uvx qlib-sync mcp` |
154
- | OpenAI Codex CLI | `codex mcp add qlib-sync -- uvx qlib-sync mcp` |
155
+ | Claude Code | `claude mcp add qlib-sync -- uvx --python 3.12 qlib-sync mcp` |
156
+ | OpenAI Codex CLI | `codex mcp add qlib-sync -- uvx --python 3.12 qlib-sync mcp` |
155
157
  | Cursor | The JSON below, in `~/.cursor/mcp.json` |
156
158
  | Gemini CLI | The JSON below, in `~/.gemini/settings.json` |
157
159
  | Qwen Code | The JSON below, in `~/.qwen/settings.json` |
158
160
  | Tencent CodeBuddy, ByteDance Trae, Alibaba Tongyi Lingma | MCP settings, add a server manually, paste the JSON below |
159
- | Cherry Studio | Settings, MCP servers, add: type STDIO, command `uvx`, arguments `qlib-sync` and `mcp` on separate lines |
160
- | VS Code (Copilot agent mode) | `.vscode/mcp.json`: `{ "servers": { "qlib-sync": { "type": "stdio", "command": "uvx", "args": ["qlib-sync", "mcp"] } } }` |
161
+ | Cherry Studio | Settings, MCP servers, add: type STDIO, command `uvx`, arguments `--python`, `3.12`, `qlib-sync`, `mcp` on separate lines |
162
+ | VS Code (Copilot agent mode) | `.vscode/mcp.json`: `{ "servers": { "qlib-sync": { "type": "stdio", "command": "uvx", "args": ["--python", "3.12", "qlib-sync", "mcp"] } } }` |
161
163
 
162
164
  ```json
163
- { "mcpServers": { "qlib-sync": { "command": "uvx", "args": ["qlib-sync", "mcp"] } } }
165
+ { "mcpServers": { "qlib-sync": { "command": "uvx", "args": ["--python", "3.12", "qlib-sync", "mcp"] } } }
164
166
  ```
165
167
 
166
168
  Menu names and file locations change between versions; check your client's MCP documentation
@@ -17,7 +17,9 @@ pip install qlib-sync
17
17
  qlib-sync cn update
18
18
  ```
19
19
 
20
- Or without installing anything first: `uvx qlib-sync cn update`.
20
+ Or without installing anything first: `uvx --python 3.12 qlib-sync cn update`.
21
+ (`--python 3.12` because pyqlib publishes wheels up to Python 3.12; uv fetches that Python
22
+ for you if needed. With pip, use Python 3.10 to 3.12.)
21
23
 
22
24
  ![qlib-sync updating the dataset: status, download with progress, checksum, summary, then an instant no-op](docs/assets/demo-update.gif)
23
25
 
@@ -121,17 +123,17 @@ Every client needs the same two things: the command `uvx` and the arguments `qli
121
123
  | Client | How to add qlib-sync |
122
124
  |---|---|
123
125
  | Claude Desktop | Download `qlib-sync.mcpb` from the [latest release](https://github.com/randyy179/qlib-sync/releases/latest) and open it |
124
- | Claude Code | `claude mcp add qlib-sync -- uvx qlib-sync mcp` |
125
- | OpenAI Codex CLI | `codex mcp add qlib-sync -- uvx qlib-sync mcp` |
126
+ | Claude Code | `claude mcp add qlib-sync -- uvx --python 3.12 qlib-sync mcp` |
127
+ | OpenAI Codex CLI | `codex mcp add qlib-sync -- uvx --python 3.12 qlib-sync mcp` |
126
128
  | Cursor | The JSON below, in `~/.cursor/mcp.json` |
127
129
  | Gemini CLI | The JSON below, in `~/.gemini/settings.json` |
128
130
  | Qwen Code | The JSON below, in `~/.qwen/settings.json` |
129
131
  | Tencent CodeBuddy, ByteDance Trae, Alibaba Tongyi Lingma | MCP settings, add a server manually, paste the JSON below |
130
- | Cherry Studio | Settings, MCP servers, add: type STDIO, command `uvx`, arguments `qlib-sync` and `mcp` on separate lines |
131
- | VS Code (Copilot agent mode) | `.vscode/mcp.json`: `{ "servers": { "qlib-sync": { "type": "stdio", "command": "uvx", "args": ["qlib-sync", "mcp"] } } }` |
132
+ | Cherry Studio | Settings, MCP servers, add: type STDIO, command `uvx`, arguments `--python`, `3.12`, `qlib-sync`, `mcp` on separate lines |
133
+ | VS Code (Copilot agent mode) | `.vscode/mcp.json`: `{ "servers": { "qlib-sync": { "type": "stdio", "command": "uvx", "args": ["--python", "3.12", "qlib-sync", "mcp"] } } }` |
132
134
 
133
135
  ```json
134
- { "mcpServers": { "qlib-sync": { "command": "uvx", "args": ["qlib-sync", "mcp"] } } }
136
+ { "mcpServers": { "qlib-sync": { "command": "uvx", "args": ["--python", "3.12", "qlib-sync", "mcp"] } } }
135
137
  ```
136
138
 
137
139
  Menu names and file locations change between versions; check your client's MCP documentation
@@ -11,7 +11,8 @@ pip install qlib-sync
11
11
  qlib-sync cn update
12
12
  ```
13
13
 
14
- 也可以不预先安装,直接运行:`uvx qlib-sync cn update`。
14
+ 也可以不预先安装,直接运行:`uvx --python 3.12 qlib-sync cn update`。
15
+ (加 `--python 3.12` 是因为 pyqlib 只提供到 Python 3.12 的安装包,需要时 uv 会自动下载这个版本的 Python。用 pip 安装时请使用 Python 3.10 到 3.12。)
15
16
 
16
17
  ![qlib-sync 更新数据:查看状态、带进度下载、校验、汇报变化,再运行一次瞬间完成](docs/assets/demo-update.gif)
17
18
 
@@ -99,17 +100,17 @@ MCP server 在你本机运行,读取你电脑上的数据,不需要搭建任
99
100
  | 工具 | 接入方式 |
100
101
  |---|---|
101
102
  | Claude Desktop | 从[最新发布](https://github.com/randyy179/qlib-sync/releases/latest)下载 `qlib-sync.mcpb`,双击安装 |
102
- | Claude Code | `claude mcp add qlib-sync -- uvx qlib-sync mcp` |
103
- | OpenAI Codex CLI | `codex mcp add qlib-sync -- uvx qlib-sync mcp` |
103
+ | Claude Code | `claude mcp add qlib-sync -- uvx --python 3.12 qlib-sync mcp` |
104
+ | OpenAI Codex CLI | `codex mcp add qlib-sync -- uvx --python 3.12 qlib-sync mcp` |
104
105
  | 腾讯 CodeBuddy、字节 Trae、阿里通义灵码 | 在 MCP 设置里手动添加服务器,粘贴下面的 JSON |
105
- | Cherry Studio | 设置 → MCP 服务器 → 添加:类型选 STDIO,命令填 `uvx`,参数分两行填 `qlib-sync` 和 `mcp` |
106
+ | Cherry Studio | 设置 → MCP 服务器 → 添加:类型选 STDIO,命令填 `uvx`,参数分四行填 `--python`、`3.12`、`qlib-sync`、`mcp` |
106
107
  | 通义千问 Qwen Code | 把下面的 JSON 写进 `~/.qwen/settings.json` |
107
108
  | Cursor | 把下面的 JSON 写进 `~/.cursor/mcp.json` |
108
109
  | Gemini CLI | 把下面的 JSON 写进 `~/.gemini/settings.json` |
109
- | VS Code(Copilot Agent 模式) | `.vscode/mcp.json`:`{ "servers": { "qlib-sync": { "type": "stdio", "command": "uvx", "args": ["qlib-sync", "mcp"] } } }` |
110
+ | VS Code(Copilot Agent 模式) | `.vscode/mcp.json`:`{ "servers": { "qlib-sync": { "type": "stdio", "command": "uvx", "args": ["--python", "3.12", "qlib-sync", "mcp"] } } }` |
110
111
 
111
112
  ```json
112
- { "mcpServers": { "qlib-sync": { "command": "uvx", "args": ["qlib-sync", "mcp"] } } }
113
+ { "mcpServers": { "qlib-sync": { "command": "uvx", "args": ["--python", "3.12", "qlib-sync", "mcp"] } } }
113
114
  ```
114
115
 
115
116
  各工具的菜单名称和配置文件位置会随版本变化,找不到时以该工具的 MCP 官方文档为准。已实测:Claude Code、OpenAI Codex CLI。
@@ -2,7 +2,7 @@
2
2
  "manifest_version": "0.4",
3
3
  "name": "qlib-sync",
4
4
  "display_name": "qlib-sync: China A-share data",
5
- "version": "0.1.0",
5
+ "version": "0.1.1",
6
6
  "description": "Install, update, and read a local Qlib China A-share daily dataset.",
7
7
  "long_description": "Keeps ~/.qlib/qlib_data/cn_data current with the daily community release from chenditc/investment_data, with checksum verification and automatic rollback, and lets Claude read daily prices and index constituents from it. The first update downloads about 550 MB.",
8
8
  "author": {
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "qlib-sync-mcpb"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  description = "Claude Desktop bundle for qlib-sync"
5
5
  requires-python = ">=3.10,<3.13"
6
- dependencies = ["qlib-sync==0.1.0"]
6
+ dependencies = ["qlib-sync==0.1.1"]
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "qlib-sync"
7
- version = "0.1.0"
7
+ version = "0.1.1"
8
8
  description = "Safely install and update a local Qlib China A-share dataset, with an MCP server for AI assistants."
9
9
  dynamic = ["readme"]
10
10
  requires-python = ">=3.10,<3.13"
@@ -7,15 +7,22 @@
7
7
  "url": "https://github.com/randyy179/qlib-sync",
8
8
  "source": "github"
9
9
  },
10
- "version": "0.1.0",
10
+ "version": "0.1.1",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "qlib-sync",
15
- "version": "0.1.0",
15
+ "version": "0.1.1",
16
16
  "runtimeHint": "uvx",
17
- "packageArguments": [{ "type": "positional", "value": "mcp" }],
18
- "transport": { "type": "stdio" },
17
+ "packageArguments": [
18
+ {
19
+ "type": "positional",
20
+ "value": "mcp"
21
+ }
22
+ ],
23
+ "transport": {
24
+ "type": "stdio"
25
+ },
19
26
  "environmentVariables": [
20
27
  {
21
28
  "name": "QLIB_SYNC_DATA_DIR",
@@ -27,6 +34,13 @@
27
34
  "description": "Optional prefix-style GitHub proxy for slow connections, e.g. https://ghfast.top",
28
35
  "isRequired": false
29
36
  }
37
+ ],
38
+ "runtimeArguments": [
39
+ {
40
+ "type": "named",
41
+ "name": "--python",
42
+ "value": "3.12"
43
+ }
30
44
  ]
31
45
  }
32
46
  ]
@@ -14,7 +14,7 @@ so running an update is always safe.
14
14
  ## Pick the interface
15
15
 
16
16
  - **MCP tools available** (`cn_status`, `cn_update`, `cn_get_prices`, ...): use them directly.
17
- - **Otherwise** use the CLI. If `qlib-sync` is not installed, `uvx qlib-sync ...` runs it
17
+ - **Otherwise** use the CLI. If `qlib-sync` is not installed, `uvx --python 3.12 qlib-sync ...` runs it
18
18
  without installing; `pip install qlib-sync` installs it. Confirm before installing anything.
19
19
 
20
20
  ## Update the data
@@ -8,6 +8,6 @@ os.environ.setdefault("MLFLOW_DISABLE_AGENT_HINT", "1")
8
8
  from .api import health_check_cn, status_cn, update_cn
9
9
  from .cn.update import UpdateError, UpdateResult
10
10
 
11
- __version__ = "0.1.0"
11
+ __version__ = "0.1.1"
12
12
 
13
13
  __all__ = ["UpdateError", "UpdateResult", "health_check_cn", "status_cn", "update_cn", "__version__"]
@@ -1,6 +1,6 @@
1
1
  """MCP server: let AI assistants check, update, and read the local A-share dataset.
2
2
 
3
- Run with `qlib-sync mcp` (stdio), or without installing: `uvx qlib-sync mcp`.
3
+ Run with `qlib-sync mcp` (stdio), or without installing: `uvx --python 3.12 qlib-sync mcp`.
4
4
  """
5
5
 
6
6
  from __future__ import annotations
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes