ffdata 0.2.1__tar.gz → 0.2.5__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 (27) hide show
  1. {ffdata-0.2.1 → ffdata-0.2.5}/PKG-INFO +1 -1
  2. {ffdata-0.2.1 → ffdata-0.2.5}/pyproject.toml +1 -1
  3. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata/__init__.py +25 -1
  4. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata/client.py +134 -2
  5. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata.egg-info/PKG-INFO +1 -1
  6. {ffdata-0.2.1 → ffdata-0.2.5}/README.md +0 -0
  7. {ffdata-0.2.1 → ffdata-0.2.5}/scripts/configure_ffdata.sh +0 -0
  8. {ffdata-0.2.1 → ffdata-0.2.5}/setup.cfg +0 -0
  9. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata/cli.py +0 -0
  10. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata/datasets/__init__.py +0 -0
  11. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata/datasets/manager.py +0 -0
  12. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata/local/__init__.py +0 -0
  13. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata/local/store.py +0 -0
  14. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata/transport/__init__.py +0 -0
  15. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata/transport/http.py +0 -0
  16. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata.egg-info/SOURCES.txt +0 -0
  17. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata.egg-info/dependency_links.txt +0 -0
  18. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata.egg-info/entry_points.txt +0 -0
  19. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata.egg-info/requires.txt +0 -0
  20. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata.egg-info/top_level.txt +0 -0
  21. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata_common/__init__.py +0 -0
  22. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata_common/codecs/__init__.py +0 -0
  23. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata_common/codecs/arrow.py +0 -0
  24. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata_common/errors.py +0 -0
  25. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata_common/protocol.py +0 -0
  26. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata_common/schemas/__init__.py +0 -0
  27. {ffdata-0.2.1 → ffdata-0.2.5}/src/ffdata_common/schemas/manifest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ffdata
3
- Version: 0.2.1
3
+ Version: 0.2.5
4
4
  Summary: ffdata lightweight Python client for governed financial-data APIs
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ffdata"
3
- version = "0.2.1"
3
+ version = "0.2.5"
4
4
  description = "ffdata lightweight Python client for governed financial-data APIs"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -77,6 +77,11 @@ def index_weight(*args: Any, **kwargs: Any):
77
77
  return _client().index_weight(*args, **kwargs)
78
78
 
79
79
 
80
+ def index_industry(*args: Any, **kwargs: Any):
81
+ """通过默认客户端查询指数与行业对应关系(行业代码/名称/级别)。"""
82
+ return _client().index_industry(*args, **kwargs)
83
+
84
+
80
85
  def etf_basic(*args: Any, **kwargs: Any):
81
86
  """通过默认客户端查询 ETF 基础信息(返回含 ETF 与跟踪目标两个聚源内码)。"""
82
87
  return _client().etf_basic(*args, **kwargs)
@@ -93,7 +98,7 @@ def etf_adj_daily(*args: Any, **kwargs: Any):
93
98
 
94
99
 
95
100
  def cb_basic(*args: Any, **kwargs: Any):
96
- """通过默认客户端查询可转债基本信息(125 列,含条款文本与最新评级)。"""
101
+ """通过默认客户端查询可转债基本信息(124 列,含条款文本与最新评级)。"""
97
102
  return _client().cb_basic(*args, **kwargs)
98
103
 
99
104
 
@@ -112,11 +117,26 @@ def cb_issue(*args: Any, **kwargs: Any):
112
117
  return _client().cb_issue(*args, **kwargs)
113
118
 
114
119
 
120
+ def bond_yield_curve(*args: Any, **kwargs: Any):
121
+ """通过默认客户端查询中债债券收益率曲线(11 列,含到期/即期/远期 N、K)。"""
122
+ return _client().bond_yield_curve(*args, **kwargs)
123
+
124
+
125
+ def bond_sap_yield_curve(*args: Any, **kwargs: Any):
126
+ """通过默认客户端查询全球(美国/日本)国债收益率曲线(12 列,仅到期)。"""
127
+ return _client().bond_sap_yield_curve(*args, **kwargs)
128
+
129
+
115
130
  def fund_basic(*args: Any, **kwargs: Any):
116
131
  """通过默认客户端查询公募基金列表(71 列,含管理人/托管人全称与投资范围)。"""
117
132
  return _client().fund_basic(*args, **kwargs)
118
133
 
119
134
 
135
+ def fund_stock_portfolio(*args: Any, **kwargs: Any):
136
+ """通过默认客户端查询公募基金股票组合明细(半年度,12 列)。"""
137
+ return _client().fund_stock_portfolio(*args, **kwargs)
138
+
139
+
120
140
  def macro_indicator_basic(*args: Any, **kwargs: Any):
121
141
  return _client().macro_indicator_basic(*args, **kwargs)
122
142
 
@@ -137,6 +157,8 @@ def stock_basic(*args: Any, **kwargs: Any):
137
157
 
138
158
  __all__ = [
139
159
  "Client",
160
+ "bond_sap_yield_curve",
161
+ "bond_yield_curve",
140
162
  "cb_basic",
141
163
  "cb_daily",
142
164
  "cb_deriv",
@@ -146,9 +168,11 @@ __all__ = [
146
168
  "etf_basic",
147
169
  "etf_daily",
148
170
  "fund_basic",
171
+ "fund_stock_portfolio",
149
172
  "index_basic",
150
173
  "index_daily",
151
174
  "index_weight",
175
+ "index_industry",
152
176
  "macro_indicator_basic",
153
177
  "macro_indicator_data",
154
178
  "query",
@@ -100,7 +100,11 @@ class Client:
100
100
  max_rows: int = 1_000,
101
101
  fields: list[str] | None = None,
102
102
  ) -> pd.DataFrame:
103
- """通过独立权限的服务端接口执行单条受限 SELECT。"""
103
+ """通过独立权限的服务端接口执行单条受限 SELECT。
104
+
105
+ ``max_rows`` 为同步返回行数上限,默认 1,000,最多 50,000;结果超出上限时
106
+ 服务端返回 413 而不是截断。需要更大结果集时使用 :meth:`create_export`。
107
+ """
104
108
  return self.query(
105
109
  "sql_query",
106
110
  sql=sql,
@@ -245,6 +249,31 @@ class Client:
245
249
  fields=fields,
246
250
  )
247
251
 
252
+ def index_industry(
253
+ self,
254
+ *,
255
+ industry_standard: int | None = None,
256
+ index_state: int | None = None,
257
+ index_code: str | list[str] | None = None,
258
+ industry_level: int | None = None,
259
+ fields: list[str] | None = None,
260
+ ) -> pd.DataFrame:
261
+ """查询指数与行业的对应关系。
262
+
263
+ 四个过滤条件至少提供一个:``industry_standard``(仅支持
264
+ 28/30/37/38/40/44)、``index_state``(1/2/3)、``index_code``
265
+ (可带后缀或裸代码,支持列表/逗号分隔)、``industry_level``(1~6)。
266
+ 返回 9 列,含行业代码、行业名称与行业级别;本接口仅支持远程查询。
267
+ """
268
+ return self.query(
269
+ "index_industry",
270
+ industry_standard=industry_standard,
271
+ index_state=index_state,
272
+ index_code=index_code,
273
+ industry_level=industry_level,
274
+ fields=fields,
275
+ )
276
+
248
277
  def macro_indicator_basic(
249
278
  self,
250
279
  *,
@@ -445,6 +474,36 @@ class Client:
445
474
  fields=fields,
446
475
  )
447
476
 
477
+ def fund_stock_portfolio(
478
+ self,
479
+ *,
480
+ ts_code: str | list[str] | None = None,
481
+ fund_inner_code: int | list[int] | None = None,
482
+ stock_inner_code: int | list[int] | None = None,
483
+ report_date: Any = None,
484
+ start_date: Any = None,
485
+ end_date: Any = None,
486
+ fields: list[str] | None = None,
487
+ ) -> pd.DataFrame:
488
+ """查询公募基金股票组合明细(半年度,12 列)。
489
+
490
+ 仅提供**年报 / 半年报**数据(报告期只有 ``06-30`` 与 ``12-31``):``report_date``
491
+ (截止日期)必须是半年度末,与 ``start_date``/``end_date`` 区间互斥;至少提供
492
+ 基金代码、基金内码、股票内码或日期条件之一。``ts_code`` 支持 ``.SH``/``.SZ``/``.OF``
493
+ 后缀或纯代码(按主代码匹配,A/C 份额的 C 类代码请改用主代码)。
494
+ 返回 12 列:``ts_code`` + 主表 11 个业务字段;不输出股票代码/名称、基金简称与投资类型文本。
495
+ """
496
+ return self.query(
497
+ "fund_stock_portfolio",
498
+ ts_code=ts_code,
499
+ fund_inner_code=fund_inner_code,
500
+ stock_inner_code=stock_inner_code,
501
+ report_date=report_date,
502
+ start_date=start_date,
503
+ end_date=end_date,
504
+ fields=fields,
505
+ )
506
+
448
507
  def cb_daily(
449
508
  self,
450
509
  *,
@@ -537,7 +596,7 @@ class Client:
537
596
  ``.SH``/``.SZ`` 后缀或纯代码,支持列表与逗号分隔(服务端剥离后缀匹配并校验市场一致);
538
597
  ``list_date`` 为上市日期(精确到日);``exchange`` 取 ``SH``/``SZ``;
539
598
  ``latest_status`` 为聚源最新状态(``1`` 发行中、``2`` 存续中、``3`` 已到期、
540
- ``4`` 发行失败)。返回 125 列:38 列 Tushare 兼容段 + 74 列聚源主表扩展 +
599
+ ``4`` 发行失败)。返回 124 列:37 列 Tushare 兼容段 + 74 列聚源主表扩展 +
541
600
  13 列关联扩展(含条款文本、最新评级、剩余金额等)。不传过滤条件时返回全部沪深
542
601
  可转债;本接口仅支持远程查询。
543
602
  """
@@ -550,5 +609,78 @@ class Client:
550
609
  fields=fields,
551
610
  )
552
611
 
612
+ def bond_yield_curve(
613
+ self,
614
+ *,
615
+ start_date: Any = None,
616
+ end_date: Any = None,
617
+ curve_code: int | list[int] | None = None,
618
+ yield_type_code: int | None = None,
619
+ years_to_maturity: float | list[float] | None = None,
620
+ n: float | None = None,
621
+ k: float | None = None,
622
+ fields: list[str] | None = None,
623
+ ) -> pd.DataFrame:
624
+ """查询中债债券收益率曲线(聚源 ``Bond_CBYieldCurve`` 原生契约,11 列)。
625
+
626
+ ``start_date`` / ``end_date`` 均必填且按 ``EndDate`` 闭区间过滤(单日查询时令二者
627
+ 相同)。``curve_code`` 为收益率曲线代码(``10`` 中债国债、``195`` 中债国开债,可传
628
+ 列表);``yield_type_code`` 为收益率类型(``1`` 到期、``2`` 即期、``3`` 远期的到期、
629
+ ``4`` 远期的即期、``5`` 远期);``years_to_maturity`` 为待偿期(年,可传列表)。
630
+
631
+ ``yield_type_code`` 为 ``3``/``4`` 时可用远期字段 ``n``、``k``,二者是同一远期利率的
632
+ 两种等价编码、只能传其一:``n`` 表示「N 年后开始、持有 ``years_to_maturity`` 年」的
633
+ 收益率(此时 ``years_to_maturity`` 是持有期),``k`` 表示「``years_to_maturity`` 年后
634
+ 开始、持有 ``k`` 年」的收益率(此时 ``years_to_maturity`` 是远期起点)。
635
+ ``yield_type_code`` 为 ``1``(到期)或 ``2``(即期)时**不要传** ``n``/``k``。
636
+
637
+ 单位保留聚源原值:``yield`` 是小数(``0.025601`` = 2.5601%),``base_rate`` /
638
+ ``yield_value`` 是百分数(``1.5`` = 1.5%,仅浮动利率点差类曲线有值)。
639
+ 本接口仅支持远程查询。
640
+ """
641
+ return self.query(
642
+ "bond_yield_curve",
643
+ start_date=start_date,
644
+ end_date=end_date,
645
+ curve_code=curve_code,
646
+ yield_type_code=yield_type_code,
647
+ years_to_maturity=years_to_maturity,
648
+ n=n,
649
+ k=k,
650
+ fields=fields,
651
+ )
652
+
653
+ def bond_sap_yield_curve(
654
+ self,
655
+ *,
656
+ start_date: Any = None,
657
+ end_date: Any = None,
658
+ curve_code: int | list[int] | None = None,
659
+ yield_type_code: int | None = None,
660
+ remain_maturity: float | list[float] | None = None,
661
+ fields: list[str] | None = None,
662
+ ) -> pd.DataFrame:
663
+ """查询全球债券收益率曲线(聚源 ``Bond_SAPYieldCurve`` 原生契约,12 列)。
664
+
665
+ ``start_date`` / ``end_date`` 均必填且按 ``EndDate`` 闭区间过滤(单日查询时令二者
666
+ 相同)。``curve_code`` 只支持 ``188``(美国国债收益率曲线)、``189``(日本国债收益率
667
+ 曲线);``yield_type_code`` 只有 ``1``(到期);``remain_maturity`` 为待偿期(年,
668
+ 可传列表)。
669
+
670
+ 数据字典与源表确认:``YieldTypeCode`` 只有到期,没有即期/远期;``StepTypeCode``
671
+ 固定为 ``99``(标准待偿期)、不是入参;``NPara`` / ``KPara`` 当前全为空、暂无语义,
672
+ 也不是入参。``yield_rate`` 是**百分数**(``5.15`` = 5.15%,可为负),与
673
+ :meth:`bond_yield_curve` 的 ``yield``(小数形式)不同。本接口仅支持远程查询。
674
+ """
675
+ return self.query(
676
+ "bond_sap_yield_curve",
677
+ start_date=start_date,
678
+ end_date=end_date,
679
+ curve_code=curve_code,
680
+ yield_type_code=yield_type_code,
681
+ remain_maturity=remain_maturity,
682
+ fields=fields,
683
+ )
684
+
553
685
 
554
686
  __all__ = ["Client", "Source"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ffdata
3
- Version: 0.2.1
3
+ Version: 0.2.5
4
4
  Summary: ffdata lightweight Python client for governed financial-data APIs
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown
File without changes
File without changes
File without changes
File without changes