lib-x17-fintech 2.1.3__py3-none-any.whl

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 (282) hide show
  1. lib_x17_fintech-2.1.3.dist-info/METADATA +633 -0
  2. lib_x17_fintech-2.1.3.dist-info/RECORD +282 -0
  3. lib_x17_fintech-2.1.3.dist-info/WHEEL +5 -0
  4. lib_x17_fintech-2.1.3.dist-info/licenses/LICENSE +1 -0
  5. lib_x17_fintech-2.1.3.dist-info/top_level.txt +1 -0
  6. xfintech/__init__.py +0 -0
  7. xfintech/connect/__init__.py +18 -0
  8. xfintech/connect/artifact/__init__.py +5 -0
  9. xfintech/connect/artifact/artifact.py +168 -0
  10. xfintech/connect/artifact/tests/__init__.py +3 -0
  11. xfintech/connect/artifact/tests/test_class_artifact_all.py +564 -0
  12. xfintech/connect/common/__init__.py +12 -0
  13. xfintech/connect/common/connect.py +49 -0
  14. xfintech/connect/common/connectref.py +119 -0
  15. xfintech/connect/common/error.py +62 -0
  16. xfintech/connect/common/tests/__init__.py +1 -0
  17. xfintech/connect/common/tests/test_class_connectlike_all.py +544 -0
  18. xfintech/connect/common/tests/test_class_connectref_all.py +586 -0
  19. xfintech/connect/common/tests/test_class_errors_all.py +524 -0
  20. xfintech/connect/instance/__init__.py +7 -0
  21. xfintech/connect/instance/macos.py +121 -0
  22. xfintech/connect/instance/s3.py +176 -0
  23. xfintech/connect/instance/tests/__init__.py +1 -0
  24. xfintech/connect/instance/tests/test_class_macosconnect_all.py +692 -0
  25. xfintech/connect/instance/tests/test_class_s3connect_all.py +603 -0
  26. xfintech/data/__init__.py +20 -0
  27. xfintech/data/common/__init__.py +15 -0
  28. xfintech/data/common/cache.py +186 -0
  29. xfintech/data/common/coolant.py +171 -0
  30. xfintech/data/common/metric.py +138 -0
  31. xfintech/data/common/paginate.py +132 -0
  32. xfintech/data/common/params.py +162 -0
  33. xfintech/data/common/retry.py +201 -0
  34. xfintech/data/common/tests/__init__.py +1 -0
  35. xfintech/data/common/tests/test_class_cache_all.py +681 -0
  36. xfintech/data/common/tests/test_class_coolant_all.py +534 -0
  37. xfintech/data/common/tests/test_class_metric_all.py +705 -0
  38. xfintech/data/common/tests/test_class_paginate_all.py +508 -0
  39. xfintech/data/common/tests/test_class_params_all.py +891 -0
  40. xfintech/data/common/tests/test_class_retry_all.py +714 -0
  41. xfintech/data/job/__init__.py +17 -0
  42. xfintech/data/job/errors.py +112 -0
  43. xfintech/data/job/house.py +156 -0
  44. xfintech/data/job/job.py +247 -0
  45. xfintech/data/job/joblike.py +47 -0
  46. xfintech/data/job/tests/__init__.py +1 -0
  47. xfintech/data/job/tests/test_class_errors_all.py +275 -0
  48. xfintech/data/job/tests/test_class_house_all.py +801 -0
  49. xfintech/data/job/tests/test_class_job_all.py +684 -0
  50. xfintech/data/job/tests/test_class_joblike_all.py +482 -0
  51. xfintech/data/relay/__init__.py +7 -0
  52. xfintech/data/relay/client.py +114 -0
  53. xfintech/data/relay/clientlike.py +45 -0
  54. xfintech/data/relay/tests/test_class_relayclient_all.py +484 -0
  55. xfintech/data/relay/tests/test_class_relayclientlike_all.py +500 -0
  56. xfintech/data/source/__init__.py +7 -0
  57. xfintech/data/source/baostock/__init__.py +21 -0
  58. xfintech/data/source/baostock/job/__init__.py +5 -0
  59. xfintech/data/source/baostock/job/job.py +217 -0
  60. xfintech/data/source/baostock/job/tests/__init__.py +0 -0
  61. xfintech/data/source/baostock/job/tests/test_class_baostockjob_all.py +547 -0
  62. xfintech/data/source/baostock/session/__init__.py +8 -0
  63. xfintech/data/source/baostock/session/relay.py +223 -0
  64. xfintech/data/source/baostock/session/session.py +241 -0
  65. xfintech/data/source/baostock/session/tests/__init__.py +0 -0
  66. xfintech/data/source/baostock/session/tests/test_class_relay_all.py +694 -0
  67. xfintech/data/source/baostock/session/tests/test_class_session_all.py +505 -0
  68. xfintech/data/source/baostock/stock/__init__.py +0 -0
  69. xfintech/data/source/baostock/stock/hs300stock/__init__.py +3 -0
  70. xfintech/data/source/baostock/stock/hs300stock/constant.py +49 -0
  71. xfintech/data/source/baostock/stock/hs300stock/hs300stock.py +133 -0
  72. xfintech/data/source/baostock/stock/hs300stock/tests/__init__.py +1 -0
  73. xfintech/data/source/baostock/stock/hs300stock/tests/test_class_hs300index_all.py +413 -0
  74. xfintech/data/source/baostock/stock/minuteline/__init__.py +19 -0
  75. xfintech/data/source/baostock/stock/minuteline/constant.py +89 -0
  76. xfintech/data/source/baostock/stock/minuteline/minuteline.py +163 -0
  77. xfintech/data/source/baostock/stock/minuteline/tests/__init__.py +0 -0
  78. xfintech/data/source/baostock/stock/minuteline/tests/test_class_minuteline_all.py +582 -0
  79. xfintech/data/source/baostock/stock/stock/__init__.py +19 -0
  80. xfintech/data/source/baostock/stock/stock/constant.py +55 -0
  81. xfintech/data/source/baostock/stock/stock/stock.py +149 -0
  82. xfintech/data/source/baostock/stock/stock/tests/__init__.py +0 -0
  83. xfintech/data/source/baostock/stock/stock/tests/test_class_stock_all.py +508 -0
  84. xfintech/data/source/baostock/stock/stockinfo/__init__.py +5 -0
  85. xfintech/data/source/baostock/stock/stockinfo/constant.py +66 -0
  86. xfintech/data/source/baostock/stock/stockinfo/stockinfo.py +176 -0
  87. xfintech/data/source/baostock/stock/stockinfo/tests/__init__.py +1 -0
  88. xfintech/data/source/baostock/stock/stockinfo/tests/test_class_stockinfo_all.py +617 -0
  89. xfintech/data/source/baostock/stock/sz50stock/__init__.py +3 -0
  90. xfintech/data/source/baostock/stock/sz50stock/constant.py +49 -0
  91. xfintech/data/source/baostock/stock/sz50stock/sz50stock.py +133 -0
  92. xfintech/data/source/baostock/stock/sz50stock/tests/__init__.py +1 -0
  93. xfintech/data/source/baostock/stock/sz50stock/tests/test_class_sz50stock_all.py +397 -0
  94. xfintech/data/source/baostock/stock/tradedate/__init__.py +19 -0
  95. xfintech/data/source/baostock/stock/tradedate/constant.py +72 -0
  96. xfintech/data/source/baostock/stock/tradedate/tests/__init__.py +0 -0
  97. xfintech/data/source/baostock/stock/tradedate/tests/test_class_tradedate_all.py +695 -0
  98. xfintech/data/source/baostock/stock/tradedate/tradedate.py +208 -0
  99. xfintech/data/source/baostock/stock/zz500stock/__init__.py +3 -0
  100. xfintech/data/source/baostock/stock/zz500stock/constant.py +55 -0
  101. xfintech/data/source/baostock/stock/zz500stock/tests/__init__.py +1 -0
  102. xfintech/data/source/baostock/stock/zz500stock/tests/test_class_zz500stock_all.py +421 -0
  103. xfintech/data/source/baostock/stock/zz500stock/zz500stock.py +133 -0
  104. xfintech/data/source/tushare/__init__.py +61 -0
  105. xfintech/data/source/tushare/job/__init__.py +5 -0
  106. xfintech/data/source/tushare/job/job.py +257 -0
  107. xfintech/data/source/tushare/job/tests/test_class_tusharejob_all.py +589 -0
  108. xfintech/data/source/tushare/session/__init__.py +5 -0
  109. xfintech/data/source/tushare/session/relay.py +231 -0
  110. xfintech/data/source/tushare/session/session.py +239 -0
  111. xfintech/data/source/tushare/session/tests/test_class_relay_all.py +719 -0
  112. xfintech/data/source/tushare/session/tests/test_class_session_all.py +705 -0
  113. xfintech/data/source/tushare/stock/__init__.py +55 -0
  114. xfintech/data/source/tushare/stock/adjfactor/__init__.py +19 -0
  115. xfintech/data/source/tushare/stock/adjfactor/adjfactor.py +150 -0
  116. xfintech/data/source/tushare/stock/adjfactor/constant.py +71 -0
  117. xfintech/data/source/tushare/stock/adjfactor/tests/__init__.py +0 -0
  118. xfintech/data/source/tushare/stock/adjfactor/tests/test_class_adjfactor_all.py +372 -0
  119. xfintech/data/source/tushare/stock/capflow/__init__.py +19 -0
  120. xfintech/data/source/tushare/stock/capflow/capflow.py +171 -0
  121. xfintech/data/source/tushare/stock/capflow/constant.py +105 -0
  122. xfintech/data/source/tushare/stock/capflow/tests/__init__.py +0 -0
  123. xfintech/data/source/tushare/stock/capflow/tests/test_class_capflow_all.py +589 -0
  124. xfintech/data/source/tushare/stock/capflowdc/__init__.py +19 -0
  125. xfintech/data/source/tushare/stock/capflowdc/capflowdc.py +167 -0
  126. xfintech/data/source/tushare/stock/capflowdc/constant.py +95 -0
  127. xfintech/data/source/tushare/stock/capflowdc/tests/__init__.py +0 -0
  128. xfintech/data/source/tushare/stock/capflowdc/tests/test_class_capflowdc_all.py +814 -0
  129. xfintech/data/source/tushare/stock/capflowths/__init__.py +19 -0
  130. xfintech/data/source/tushare/stock/capflowths/capflowths.py +173 -0
  131. xfintech/data/source/tushare/stock/capflowths/constant.py +92 -0
  132. xfintech/data/source/tushare/stock/capflowths/tests/__init__.py +0 -0
  133. xfintech/data/source/tushare/stock/capflowths/tests/test_class_capflowths_all.py +551 -0
  134. xfintech/data/source/tushare/stock/company/__init__.py +19 -0
  135. xfintech/data/source/tushare/stock/company/company.py +188 -0
  136. xfintech/data/source/tushare/stock/company/constant.py +92 -0
  137. xfintech/data/source/tushare/stock/company/tests/__init__.py +1 -0
  138. xfintech/data/source/tushare/stock/company/tests/test_class_company_all.py +829 -0
  139. xfintech/data/source/tushare/stock/companybusiness/__init__.py +21 -0
  140. xfintech/data/source/tushare/stock/companybusiness/companybusiness.py +183 -0
  141. xfintech/data/source/tushare/stock/companybusiness/constant.py +91 -0
  142. xfintech/data/source/tushare/stock/companybusiness/tests/__init__.py +0 -0
  143. xfintech/data/source/tushare/stock/companybusiness/tests/test_class_companybusiness_all.py +633 -0
  144. xfintech/data/source/tushare/stock/companycashflow/__init__.py +21 -0
  145. xfintech/data/source/tushare/stock/companycashflow/companycashflow.py +277 -0
  146. xfintech/data/source/tushare/stock/companycashflow/constant.py +293 -0
  147. xfintech/data/source/tushare/stock/companycashflow/tests/__init__.py +0 -0
  148. xfintech/data/source/tushare/stock/companycashflow/tests/test_class_companycashflow_all.py +619 -0
  149. xfintech/data/source/tushare/stock/companydebt/__init__.py +19 -0
  150. xfintech/data/source/tushare/stock/companydebt/companydebt.py +339 -0
  151. xfintech/data/source/tushare/stock/companydebt/constant.py +403 -0
  152. xfintech/data/source/tushare/stock/companydebt/tests/__init__.py +0 -0
  153. xfintech/data/source/tushare/stock/companydebt/tests/test_class_companydebt_all.py +655 -0
  154. xfintech/data/source/tushare/stock/companyoverview/__init__.py +21 -0
  155. xfintech/data/source/tushare/stock/companyoverview/companyoverview.py +214 -0
  156. xfintech/data/source/tushare/stock/companyoverview/constant.py +152 -0
  157. xfintech/data/source/tushare/stock/companyoverview/tests/__init__.py +0 -0
  158. xfintech/data/source/tushare/stock/companyoverview/tests/test_class_companyoverview_all.py +647 -0
  159. xfintech/data/source/tushare/stock/companyprofit/__init__.py +21 -0
  160. xfintech/data/source/tushare/stock/companyprofit/companyprofit.py +272 -0
  161. xfintech/data/source/tushare/stock/companyprofit/constant.py +259 -0
  162. xfintech/data/source/tushare/stock/companyprofit/tests/__init__.py +0 -0
  163. xfintech/data/source/tushare/stock/companyprofit/tests/test_class_companyprofit_all.py +635 -0
  164. xfintech/data/source/tushare/stock/conceptcapflowdc/__init__.py +21 -0
  165. xfintech/data/source/tushare/stock/conceptcapflowdc/conceptcapflowdc.py +175 -0
  166. xfintech/data/source/tushare/stock/conceptcapflowdc/constant.py +106 -0
  167. xfintech/data/source/tushare/stock/conceptcapflowdc/tests/__init__.py +0 -0
  168. xfintech/data/source/tushare/stock/conceptcapflowdc/tests/test_class_conceptcapflowdc_all.py +568 -0
  169. xfintech/data/source/tushare/stock/conceptcapflowths/__init__.py +21 -0
  170. xfintech/data/source/tushare/stock/conceptcapflowths/conceptcapflowths.py +188 -0
  171. xfintech/data/source/tushare/stock/conceptcapflowths/constant.py +89 -0
  172. xfintech/data/source/tushare/stock/conceptcapflowths/tests/__init__.py +0 -0
  173. xfintech/data/source/tushare/stock/conceptcapflowths/tests/test_class_conceptcapflowths_all.py +516 -0
  174. xfintech/data/source/tushare/stock/dayline/__init__.py +19 -0
  175. xfintech/data/source/tushare/stock/dayline/constant.py +87 -0
  176. xfintech/data/source/tushare/stock/dayline/dayline.py +177 -0
  177. xfintech/data/source/tushare/stock/dayline/tests/__init__.py +0 -0
  178. xfintech/data/source/tushare/stock/dayline/tests/test_class_dayline_all.py +585 -0
  179. xfintech/data/source/tushare/stock/industrycapflowths/__init__.py +21 -0
  180. xfintech/data/source/tushare/stock/industrycapflowths/constant.py +89 -0
  181. xfintech/data/source/tushare/stock/industrycapflowths/industrycapflowths.py +192 -0
  182. xfintech/data/source/tushare/stock/industrycapflowths/tests/__init__.py +0 -0
  183. xfintech/data/source/tushare/stock/industrycapflowths/tests/test_class_industrycapflowths_all.py +683 -0
  184. xfintech/data/source/tushare/stock/marketindexcapflowdc/__init__.py +21 -0
  185. xfintech/data/source/tushare/stock/marketindexcapflowdc/constant.py +90 -0
  186. xfintech/data/source/tushare/stock/marketindexcapflowdc/marketindexcapflowdc.py +173 -0
  187. xfintech/data/source/tushare/stock/marketindexcapflowdc/tests/__init__.py +0 -0
  188. xfintech/data/source/tushare/stock/marketindexcapflowdc/tests/test_class_marketindexcapflowdc_all.py +793 -0
  189. xfintech/data/source/tushare/stock/monthline/__init__.py +19 -0
  190. xfintech/data/source/tushare/stock/monthline/constant.py +87 -0
  191. xfintech/data/source/tushare/stock/monthline/monthline.py +180 -0
  192. xfintech/data/source/tushare/stock/monthline/tests/__init__.py +0 -0
  193. xfintech/data/source/tushare/stock/monthline/tests/test_class_monthline_all.py +574 -0
  194. xfintech/data/source/tushare/stock/stock/__init__.py +19 -0
  195. xfintech/data/source/tushare/stock/stock/constant.py +105 -0
  196. xfintech/data/source/tushare/stock/stock/stock.py +193 -0
  197. xfintech/data/source/tushare/stock/stock/tests/__init__.py +0 -0
  198. xfintech/data/source/tushare/stock/stock/tests/test_class_stock_all.py +788 -0
  199. xfintech/data/source/tushare/stock/stockdividend/__init__.py +21 -0
  200. xfintech/data/source/tushare/stock/stockdividend/constant.py +111 -0
  201. xfintech/data/source/tushare/stock/stockdividend/stockdividend.py +180 -0
  202. xfintech/data/source/tushare/stock/stockdividend/tests/__init__.py +0 -0
  203. xfintech/data/source/tushare/stock/stockdividend/tests/test_class_stockdividend_all.py +725 -0
  204. xfintech/data/source/tushare/stock/stockinfo/__init__.py +19 -0
  205. xfintech/data/source/tushare/stock/stockinfo/constant.py +104 -0
  206. xfintech/data/source/tushare/stock/stockinfo/stockinfo.py +208 -0
  207. xfintech/data/source/tushare/stock/stockinfo/tests/__init__.py +0 -0
  208. xfintech/data/source/tushare/stock/stockinfo/tests/test_class_stockinfo_all.py +881 -0
  209. xfintech/data/source/tushare/stock/stockipo/__init__.py +19 -0
  210. xfintech/data/source/tushare/stock/stockipo/constant.py +90 -0
  211. xfintech/data/source/tushare/stock/stockipo/stockipo.py +234 -0
  212. xfintech/data/source/tushare/stock/stockipo/tests/__init__.py +1 -0
  213. xfintech/data/source/tushare/stock/stockipo/tests/test_class_stockipo_all.py +750 -0
  214. xfintech/data/source/tushare/stock/stockpledge/__init__.py +19 -0
  215. xfintech/data/source/tushare/stock/stockpledge/constant.py +72 -0
  216. xfintech/data/source/tushare/stock/stockpledge/stockpledge.py +158 -0
  217. xfintech/data/source/tushare/stock/stockpledge/tests/__init__.py +0 -0
  218. xfintech/data/source/tushare/stock/stockpledge/tests/test_class_stockpledge_all.py +664 -0
  219. xfintech/data/source/tushare/stock/stockpledgedetail/__init__.py +21 -0
  220. xfintech/data/source/tushare/stock/stockpledgedetail/constant.py +85 -0
  221. xfintech/data/source/tushare/stock/stockpledgedetail/stockpledgedetail.py +171 -0
  222. xfintech/data/source/tushare/stock/stockpledgedetail/tests/__init__.py +0 -0
  223. xfintech/data/source/tushare/stock/stockpledgedetail/tests/test_class_stockpledgedetail_all.py +112 -0
  224. xfintech/data/source/tushare/stock/stockst/__init__.py +19 -0
  225. xfintech/data/source/tushare/stock/stockst/constant.py +80 -0
  226. xfintech/data/source/tushare/stock/stockst/stockst.py +189 -0
  227. xfintech/data/source/tushare/stock/stockst/tests/__init__.py +0 -0
  228. xfintech/data/source/tushare/stock/stockst/tests/test_class_stockst_all.py +693 -0
  229. xfintech/data/source/tushare/stock/stocksuspend/__init__.py +21 -0
  230. xfintech/data/source/tushare/stock/stocksuspend/constant.py +75 -0
  231. xfintech/data/source/tushare/stock/stocksuspend/stocksuspend.py +151 -0
  232. xfintech/data/source/tushare/stock/stocksuspend/tests/__init__.py +0 -0
  233. xfintech/data/source/tushare/stock/stocksuspend/tests/test_class_stocksuspend_all.py +626 -0
  234. xfintech/data/source/tushare/stock/techindex/__init__.py +19 -0
  235. xfintech/data/source/tushare/stock/techindex/constant.py +600 -0
  236. xfintech/data/source/tushare/stock/techindex/techindex.py +314 -0
  237. xfintech/data/source/tushare/stock/techindex/tests/__init__.py +0 -0
  238. xfintech/data/source/tushare/stock/techindex/tests/test_class_techindex_all.py +576 -0
  239. xfintech/data/source/tushare/stock/tradedate/__init__.py +19 -0
  240. xfintech/data/source/tushare/stock/tradedate/constant.py +93 -0
  241. xfintech/data/source/tushare/stock/tradedate/tests/__init__.py +0 -0
  242. xfintech/data/source/tushare/stock/tradedate/tests/test_class_tradedate_all.py +947 -0
  243. xfintech/data/source/tushare/stock/tradedate/tradedate.py +234 -0
  244. xfintech/data/source/tushare/stock/weekline/__init__.py +19 -0
  245. xfintech/data/source/tushare/stock/weekline/constant.py +87 -0
  246. xfintech/data/source/tushare/stock/weekline/tests/__init__.py +0 -0
  247. xfintech/data/source/tushare/stock/weekline/tests/test_class_weekline_all.py +575 -0
  248. xfintech/data/source/tushare/stock/weekline/weekline.py +182 -0
  249. xfintech/fabric/__init__.py +18 -0
  250. xfintech/fabric/column/__init__.py +7 -0
  251. xfintech/fabric/column/info.py +202 -0
  252. xfintech/fabric/column/kind.py +102 -0
  253. xfintech/fabric/column/tests/__init__.py +0 -0
  254. xfintech/fabric/column/tests/test_class_info_all.py +207 -0
  255. xfintech/fabric/column/tests/test_class_kind_all.py +80 -0
  256. xfintech/fabric/table/__init__.py +5 -0
  257. xfintech/fabric/table/info.py +263 -0
  258. xfintech/fabric/table/tests/__init__.py +0 -0
  259. xfintech/fabric/table/tests/test_class_info_all.py +547 -0
  260. xfintech/serde/__init__.py +35 -0
  261. xfintech/serde/common/__init__.py +9 -0
  262. xfintech/serde/common/dataformat.py +78 -0
  263. xfintech/serde/common/deserialiserlike.py +38 -0
  264. xfintech/serde/common/error.py +182 -0
  265. xfintech/serde/common/serialiserlike.py +38 -0
  266. xfintech/serde/common/tests/__init__.py +1 -0
  267. xfintech/serde/common/tests/test_class_dataformat_all.py +694 -0
  268. xfintech/serde/common/tests/test_class_deserialiserlike_all.py +500 -0
  269. xfintech/serde/common/tests/test_class_errors_all.py +518 -0
  270. xfintech/serde/common/tests/test_class_serialiserlike_all.py +401 -0
  271. xfintech/serde/deserialiser/__init__.py +7 -0
  272. xfintech/serde/deserialiser/pandas.py +113 -0
  273. xfintech/serde/deserialiser/python.py +68 -0
  274. xfintech/serde/deserialiser/tests/__init__.py +1 -0
  275. xfintech/serde/deserialiser/tests/test_class_pandasdeserialiser_all.py +503 -0
  276. xfintech/serde/deserialiser/tests/test_class_pythondeserialiser_all.py +570 -0
  277. xfintech/serde/serialiser/__init__.py +7 -0
  278. xfintech/serde/serialiser/pandas.py +116 -0
  279. xfintech/serde/serialiser/python.py +71 -0
  280. xfintech/serde/serialiser/tests/__init__.py +1 -0
  281. xfintech/serde/serialiser/tests/test_class_pandasserialiser_all.py +474 -0
  282. xfintech/serde/serialiser/tests/test_class_pythonserialiser_all.py +508 -0
@@ -0,0 +1,277 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, Dict, Optional
4
+
5
+ import pandas as pd
6
+
7
+ from xfintech.data.common.cache import Cache
8
+ from xfintech.data.common.coolant import Coolant
9
+ from xfintech.data.common.params import Params
10
+ from xfintech.data.common.retry import Retry
11
+ from xfintech.data.job import JobHouse
12
+ from xfintech.data.source.tushare.job import TushareJob
13
+ from xfintech.data.source.tushare.session.session import Session
14
+ from xfintech.data.source.tushare.stock.companycashflow.constant import (
15
+ KEY,
16
+ NAME,
17
+ PAGINATE,
18
+ SOURCE,
19
+ TARGET,
20
+ )
21
+
22
+
23
+ @JobHouse.register(KEY, alias=KEY)
24
+ class CompanyCashflow(TushareJob):
25
+ """
26
+ 描述:
27
+ - 获取A股上市公司现金流量表数据
28
+ - API文档: https://tushare.pro/document/2?doc_id=44
29
+ - SCALE: CrossSection & Individual
30
+ - TYPE: Partitioned
31
+ - PAGINATE: 1000 rows / 1000 pages
32
+
33
+ 属性:
34
+ - name: str, 作业名称 'companycashflow'。
35
+ - key: str, 作业键 '/tushare/companycashflow'。
36
+ - session: Session, Tushare会话对象。
37
+ - source: TableInfo, 源表信息(Tushare原始格式)。
38
+ - target: TableInfo, 目标表信息(转换后格式)。
39
+ - params: Params, 查询参数。
40
+ - ts_code: str, 必需, 股票代码(如'000001.SZ')
41
+ - ann_date: str, 可选, 公告日期(YYYYMMDD)
42
+ - start_date: str, 可选, 公告开始日期(YYYYMMDD)
43
+ - end_date: str, 可选, 公告结束日期(YYYYMMDD)
44
+ - period: str, 可选, 报告期(YYYYMMDD,如2017-01表示第一季度)
45
+ - report_type: str, 可选, 报告类型(见文档说明)
46
+ - comp_type: str, 可选, 公司类型(1一般工商业 2银行 3保险 4证券)
47
+ - coolant: Coolant, 请求冷却控制。
48
+ - paginate: Paginate, 分页控制(pagesize=1000, pagelimit=100)。
49
+ - retry: Retry, 重试策略。
50
+ - cache: Cache, 缓存管理。
51
+
52
+ 方法:
53
+ - run(): 执行作业,返回现金流量表DataFrame。
54
+ - _run(): 内部执行逻辑,处理参数并调用API。
55
+ - transform(data): 转换数据格式,将源格式转为目标格式。
56
+
57
+ 例子:
58
+ ```python
59
+ from xfintech.data.source.tushare.session import Session
60
+ from xfintech.data.source.tushare.stock.companycashflow import CompanyCashflow
61
+
62
+ session = Session(credential="your_token")
63
+ cashflow = CompanyCashflow(
64
+ session=session,
65
+ params={
66
+ "ts_code": "000001.SZ",
67
+ "start_date": "20200101",
68
+ "end_date": "20201231",
69
+ },
70
+ )
71
+ df = cashflow.run()
72
+ ```
73
+ """
74
+
75
+ def __init__(
76
+ self,
77
+ session: Session,
78
+ params: Optional[Params | Dict[str, Any]] = None,
79
+ coolant: Optional[Coolant | Dict[str, Any]] = None,
80
+ retry: Optional[Retry | Dict[str, Any]] = None,
81
+ cache: Optional[Cache | Dict[str, str] | bool] = None,
82
+ ) -> None:
83
+ super().__init__(
84
+ name=NAME,
85
+ key=KEY,
86
+ session=session,
87
+ source=SOURCE,
88
+ target=TARGET,
89
+ params=params,
90
+ coolant=coolant,
91
+ paginate=PAGINATE,
92
+ retry=retry,
93
+ cache=cache,
94
+ )
95
+
96
+ def _run(self) -> pd.DataFrame:
97
+ cached = self._load_cache()
98
+ if cached is not None:
99
+ return cached
100
+
101
+ # Prepare payload dict
102
+ payload = self.params.to_dict()
103
+ payload = self._parse_date_params(
104
+ payload,
105
+ keys=["ann_date", "start_date", "end_date"],
106
+ )
107
+ payload = self._parse_string_params(
108
+ payload,
109
+ keys=["ts_code", "report_type", "comp_type"],
110
+ )
111
+ payload = self._parse_year_params(
112
+ payload,
113
+ key="year",
114
+ )
115
+ payload = self._parse_period_params(
116
+ payload,
117
+ key="period",
118
+ )
119
+ fields = SOURCE.list_column_names()
120
+ payload["fields"] = ",".join(fields)
121
+
122
+ # Fetch and transform data
123
+ data = self._fetchall(
124
+ api=self.connection.cashflow_vip,
125
+ **payload,
126
+ )
127
+ result = self.transform(data)
128
+ self._save_cache(result)
129
+ return result
130
+
131
+ # Transform logic
132
+ def transform(
133
+ self,
134
+ data: pd.DataFrame,
135
+ ) -> pd.DataFrame:
136
+ cols = self.target.list_column_names()
137
+ if data is None or data.empty:
138
+ return pd.DataFrame(columns=cols)
139
+
140
+ transformed = {}
141
+ transformed["code"] = data["ts_code"].astype(str)
142
+ transformed["datecode"] = data["end_date"].astype(str)
143
+ transformed["date"] = pd.to_datetime(
144
+ data["end_date"],
145
+ format="%Y%m%d",
146
+ errors="coerce",
147
+ ).dt.strftime("%Y-%m-%d")
148
+
149
+ # Convert other date fields
150
+ for col in [
151
+ "ann_date",
152
+ "f_ann_date",
153
+ "end_date",
154
+ ]:
155
+ transformed[col] = pd.to_datetime(
156
+ data[col],
157
+ format="%Y%m%d",
158
+ errors="coerce",
159
+ ).dt.strftime("%Y-%m-%d")
160
+
161
+ # Convert string fields
162
+ for col in [
163
+ "comp_type",
164
+ "report_type",
165
+ "end_type",
166
+ "update_flag",
167
+ ]:
168
+ transformed[col] = data[col].astype(str)
169
+
170
+ # Convert numeric fields
171
+ numeric_fields = [
172
+ "net_profit",
173
+ "finan_exp",
174
+ "c_fr_sale_sg",
175
+ "recp_tax_rends",
176
+ "n_depos_incr_fi",
177
+ "n_incr_loans_cb",
178
+ "n_inc_borr_oth_fi",
179
+ "prem_fr_orig_contr",
180
+ "n_incr_insured_dep",
181
+ "n_reinsur_prem",
182
+ "n_incr_disp_tfa",
183
+ "ifc_cash_incr",
184
+ "n_incr_disp_faas",
185
+ "n_incr_loans_oth_bank",
186
+ "n_cap_incr_repur",
187
+ "c_fr_oth_operate_a",
188
+ "c_inf_fr_operate_a",
189
+ "c_paid_goods_s",
190
+ "c_paid_to_for_empl",
191
+ "c_paid_for_taxes",
192
+ "n_incr_clt_loan_adv",
193
+ "n_incr_dep_cbob",
194
+ "c_pay_claims_orig_inco",
195
+ "pay_handling_chrg",
196
+ "pay_comm_insur_plcy",
197
+ "oth_cash_pay_oper_act",
198
+ "st_cash_out_act",
199
+ "n_cashflow_act",
200
+ "oth_recp_ral_inv_act",
201
+ "c_disp_withdrwl_invest",
202
+ "c_recp_return_invest",
203
+ "n_recp_disp_fiolta",
204
+ "n_recp_disp_sobu",
205
+ "stot_inflows_inv_act",
206
+ "c_pay_acq_const_fiolta",
207
+ "c_paid_invest",
208
+ "n_disp_subs_oth_biz",
209
+ "oth_pay_ral_inv_act",
210
+ "n_incr_pledge_loan",
211
+ "stot_out_inv_act",
212
+ "n_cashflow_inv_act",
213
+ "c_recp_borrow",
214
+ "proc_issue_bonds",
215
+ "oth_cash_recp_ral_fnc_act",
216
+ "stot_cash_in_fnc_act",
217
+ "free_cashflow",
218
+ "c_prepay_amt_borr",
219
+ "c_pay_dist_dpcp_int_exp",
220
+ "incl_dvd_profit_paid_sc_ms",
221
+ "oth_cashpay_ral_fnc_act",
222
+ "stot_cashout_fnc_act",
223
+ "n_cash_flows_fnc_act",
224
+ "eff_fx_flu_cash",
225
+ "n_incr_cash_cash_equ",
226
+ "c_cash_equ_beg_period",
227
+ "c_cash_equ_end_period",
228
+ "c_recp_cap_contrib",
229
+ "incl_cash_rec_saims",
230
+ "uncon_invest_loss",
231
+ "prov_depr_assets",
232
+ "depr_fa_coga_dpba",
233
+ "amort_intang_assets",
234
+ "lt_amort_deferred_exp",
235
+ "decr_deferred_exp",
236
+ "incr_acc_exp",
237
+ "loss_disp_fiolta",
238
+ "loss_scr_fa",
239
+ "loss_fv_chg",
240
+ "invest_loss",
241
+ "decr_def_inc_tax_assets",
242
+ "incr_def_inc_tax_liab",
243
+ "decr_inventories",
244
+ "decr_oper_payable",
245
+ "incr_oper_payable",
246
+ "others",
247
+ "im_net_cashflow_oper_act",
248
+ "conv_debt_into_cap",
249
+ "conv_copbonds_due_within_1y",
250
+ "fa_fnc_leases",
251
+ "im_n_incr_cash_equ",
252
+ "net_dism_capital_add",
253
+ "net_cash_rece_sec",
254
+ "credit_impa_loss",
255
+ "use_right_asset_dep",
256
+ "oth_loss_asset",
257
+ "end_bal_cash",
258
+ "beg_bal_cash",
259
+ "end_bal_cash_equ",
260
+ "beg_bal_cash_equ",
261
+ ]
262
+ for col in numeric_fields:
263
+ if col in data.columns:
264
+ transformed[col] = pd.to_numeric(data[col], errors="coerce")
265
+
266
+ # Ensure all target columns exist (add missing ones with NaN)
267
+ for col in cols:
268
+ if col not in transformed:
269
+ transformed[col] = pd.NA
270
+
271
+ # Select target columns, drop duplicates, and sort
272
+ out = pd.DataFrame(transformed)
273
+ out = out[cols].drop_duplicates()
274
+ out = out.sort_values(by=["code", "date"])
275
+ out = out.reset_index(drop=True)
276
+ self.markpoint("transform[OK]")
277
+ return out
@@ -0,0 +1,293 @@
1
+ from __future__ import annotations
2
+
3
+ from xfintech.data.common.paginate import Paginate
4
+ from xfintech.fabric.column.info import ColumnInfo
5
+ from xfintech.fabric.column.kind import ColumnKind
6
+ from xfintech.fabric.table.info import TableInfo
7
+
8
+ PROVIDER = "tushare"
9
+ SOURCE_NAME = "cashflow_vip"
10
+ URL = "https://tushare.pro/document/2?doc_id=44"
11
+ ARGS = {
12
+ "ts_code": {
13
+ "type": ColumnKind.STRING,
14
+ "required": "N",
15
+ "desc": "股票代码",
16
+ },
17
+ "start_date": {
18
+ "type": ColumnKind.STRING,
19
+ "required": "N",
20
+ "desc": "开始日期(YYYYMMDD)",
21
+ },
22
+ "end_date": {
23
+ "type": ColumnKind.STRING,
24
+ "required": "N",
25
+ "desc": "结束日期(YYYYMMDD)",
26
+ },
27
+ "year": {
28
+ "type": ColumnKind.STRING,
29
+ "required": "N",
30
+ "desc": "年份(YYYY)",
31
+ },
32
+ "period": {
33
+ "type": ColumnKind.STRING,
34
+ "required": "N",
35
+ "desc": "季度(1,2,3,4), 例:2025-1 表示第一季度",
36
+ },
37
+ "comp_type": {
38
+ "type": ColumnKind.STRING,
39
+ "required": "N",
40
+ "desc": "公司类型(1一般工商业2银行3保险4证券)",
41
+ },
42
+ "report_type": {
43
+ "type": ColumnKind.STRING,
44
+ "required": "N",
45
+ "desc": "报表类型",
46
+ },
47
+ }
48
+
49
+ # Exported constants
50
+ NAME = "companycashflow"
51
+ KEY = "/tushare/companycashflow"
52
+ PAGINATE = Paginate(
53
+ pagesize=1000,
54
+ pagelimit=1000,
55
+ )
56
+ SOURCE = TableInfo(
57
+ name=SOURCE_NAME,
58
+ desc="A股现金流量表数据(tushare格式)",
59
+ meta={
60
+ "provider": PROVIDER,
61
+ "source": SOURCE_NAME,
62
+ "url": URL,
63
+ "args": ARGS,
64
+ "type": "partitioned",
65
+ "scale": "crosssection",
66
+ },
67
+ columns=[
68
+ ColumnInfo(name="ts_code", kind=ColumnKind.STRING, desc="TS股票代码"),
69
+ ColumnInfo(name="ann_date", kind=ColumnKind.STRING, desc="公告日期"),
70
+ ColumnInfo(name="f_ann_date", kind=ColumnKind.STRING, desc="实际公告日期"),
71
+ ColumnInfo(name="end_date", kind=ColumnKind.STRING, desc="报告期"),
72
+ ColumnInfo(name="comp_type", kind=ColumnKind.STRING, desc="公司类型(1一般工商业2银行3保险4证券)"),
73
+ ColumnInfo(name="report_type", kind=ColumnKind.STRING, desc="报表类型"),
74
+ ColumnInfo(name="end_type", kind=ColumnKind.STRING, desc="报告期类型"),
75
+ ColumnInfo(name="update_flag", kind=ColumnKind.STRING, desc="更新标志(1最新)"),
76
+ ColumnInfo(name="net_profit", kind=ColumnKind.FLOAT, desc="净利润"),
77
+ ColumnInfo(name="finan_exp", kind=ColumnKind.FLOAT, desc="财务费用"),
78
+ ColumnInfo(name="c_fr_sale_sg", kind=ColumnKind.FLOAT, desc="销售商品、提供劳务收到的现金"),
79
+ ColumnInfo(name="recp_tax_rends", kind=ColumnKind.FLOAT, desc="收到的税费返还"),
80
+ ColumnInfo(name="n_depos_incr_fi", kind=ColumnKind.FLOAT, desc="客户存款和同业存放款项净增加额"),
81
+ ColumnInfo(name="n_incr_loans_cb", kind=ColumnKind.FLOAT, desc="向中央银行借款净增加额"),
82
+ ColumnInfo(name="n_inc_borr_oth_fi", kind=ColumnKind.FLOAT, desc="向其他金融机构拆入资金净增加额"),
83
+ ColumnInfo(name="prem_fr_orig_contr", kind=ColumnKind.FLOAT, desc="收到原保险合同保费取得的现金"),
84
+ ColumnInfo(name="n_incr_insured_dep", kind=ColumnKind.FLOAT, desc="保户储金净增加额"),
85
+ ColumnInfo(name="n_reinsur_prem", kind=ColumnKind.FLOAT, desc="收到再保业务现金净额"),
86
+ ColumnInfo(name="n_incr_disp_tfa", kind=ColumnKind.FLOAT, desc="处置交易性金融资产净增加额"),
87
+ ColumnInfo(name="ifc_cash_incr", kind=ColumnKind.FLOAT, desc="收取利息和手续费净增加额"),
88
+ ColumnInfo(name="n_incr_disp_faas", kind=ColumnKind.FLOAT, desc="处置可供出售金融资产净增加额"),
89
+ ColumnInfo(name="n_incr_loans_oth_bank", kind=ColumnKind.FLOAT, desc="拆入资金净增加额"),
90
+ ColumnInfo(name="n_cap_incr_repur", kind=ColumnKind.FLOAT, desc="回购业务资金净增加额"),
91
+ ColumnInfo(name="c_fr_oth_operate_a", kind=ColumnKind.FLOAT, desc="收到其他与经营活动有关的现金"),
92
+ ColumnInfo(name="c_inf_fr_operate_a", kind=ColumnKind.FLOAT, desc="经营活动现金流入小计"),
93
+ ColumnInfo(name="c_paid_goods_s", kind=ColumnKind.FLOAT, desc="购买商品、接受劳务支付的现金"),
94
+ ColumnInfo(name="c_paid_to_for_empl", kind=ColumnKind.FLOAT, desc="支付给职工以及为职工支付的现金"),
95
+ ColumnInfo(name="c_paid_for_taxes", kind=ColumnKind.FLOAT, desc="支付的各项税费"),
96
+ ColumnInfo(name="n_incr_clt_loan_adv", kind=ColumnKind.FLOAT, desc="客户贷款及垫款净增加额"),
97
+ ColumnInfo(name="n_incr_dep_cbob", kind=ColumnKind.FLOAT, desc="存放央行和同业款项净增加额"),
98
+ ColumnInfo(name="c_pay_claims_orig_inco", kind=ColumnKind.FLOAT, desc="支付原保险合同赔付款项的现金"),
99
+ ColumnInfo(name="pay_handling_chrg", kind=ColumnKind.FLOAT, desc="支付手续费的现金"),
100
+ ColumnInfo(name="pay_comm_insur_plcy", kind=ColumnKind.FLOAT, desc="支付保单红利的现金"),
101
+ ColumnInfo(name="oth_cash_pay_oper_act", kind=ColumnKind.FLOAT, desc="支付其他与经营活动有关的现金"),
102
+ ColumnInfo(name="st_cash_out_act", kind=ColumnKind.FLOAT, desc="经营活动现金流出小计"),
103
+ ColumnInfo(name="n_cashflow_act", kind=ColumnKind.FLOAT, desc="经营活动产生的现金流量净额"),
104
+ ColumnInfo(name="oth_recp_ral_inv_act", kind=ColumnKind.FLOAT, desc="收到其他与投资活动有关的现金"),
105
+ ColumnInfo(name="c_disp_withdrwl_invest", kind=ColumnKind.FLOAT, desc="收回投资收到的现金"),
106
+ ColumnInfo(name="c_recp_return_invest", kind=ColumnKind.FLOAT, desc="取得投资收益收到的现金"),
107
+ ColumnInfo(
108
+ name="n_recp_disp_fiolta", kind=ColumnKind.FLOAT, desc="处置固定资产、无形资产和其他长期资产收回的现金净额"
109
+ ),
110
+ ColumnInfo(name="n_recp_disp_sobu", kind=ColumnKind.FLOAT, desc="处置子公司及其他营业单位收到的现金净额"),
111
+ ColumnInfo(name="stot_inflows_inv_act", kind=ColumnKind.FLOAT, desc="投资活动现金流入小计"),
112
+ ColumnInfo(
113
+ name="c_pay_acq_const_fiolta", kind=ColumnKind.FLOAT, desc="购建固定资产、无形资产和其他长期资产支付的现金"
114
+ ),
115
+ ColumnInfo(name="c_paid_invest", kind=ColumnKind.FLOAT, desc="投资支付的现金"),
116
+ ColumnInfo(name="n_disp_subs_oth_biz", kind=ColumnKind.FLOAT, desc="取得子公司及其他营业单位支付的现金净额"),
117
+ ColumnInfo(name="oth_pay_ral_inv_act", kind=ColumnKind.FLOAT, desc="支付其他与投资活动有关的现金"),
118
+ ColumnInfo(name="n_incr_pledge_loan", kind=ColumnKind.FLOAT, desc="质押贷款净增加额"),
119
+ ColumnInfo(name="stot_out_inv_act", kind=ColumnKind.FLOAT, desc="投资活动现金流出小计"),
120
+ ColumnInfo(name="n_cashflow_inv_act", kind=ColumnKind.FLOAT, desc="投资活动产生的现金流量净额"),
121
+ ColumnInfo(name="c_recp_borrow", kind=ColumnKind.FLOAT, desc="取得借款收到的现金"),
122
+ ColumnInfo(name="proc_issue_bonds", kind=ColumnKind.FLOAT, desc="发行债券收到的现金"),
123
+ ColumnInfo(name="oth_cash_recp_ral_fnc_act", kind=ColumnKind.FLOAT, desc="收到其他与筹资活动有关的现金"),
124
+ ColumnInfo(name="stot_cash_in_fnc_act", kind=ColumnKind.FLOAT, desc="筹资活动现金流入小计"),
125
+ ColumnInfo(name="free_cashflow", kind=ColumnKind.FLOAT, desc="企业自由现金流量"),
126
+ ColumnInfo(name="c_prepay_amt_borr", kind=ColumnKind.FLOAT, desc="偿还债务支付的现金"),
127
+ ColumnInfo(name="c_pay_dist_dpcp_int_exp", kind=ColumnKind.FLOAT, desc="分配股利、利润或偿付利息支付的现金"),
128
+ ColumnInfo(
129
+ name="incl_dvd_profit_paid_sc_ms", kind=ColumnKind.FLOAT, desc="其中:子公司支付给少数股东的股利、利润"
130
+ ),
131
+ ColumnInfo(name="oth_cashpay_ral_fnc_act", kind=ColumnKind.FLOAT, desc="支付其他与筹资活动有关的现金"),
132
+ ColumnInfo(name="stot_cashout_fnc_act", kind=ColumnKind.FLOAT, desc="筹资活动现金流出小计"),
133
+ ColumnInfo(name="n_cash_flows_fnc_act", kind=ColumnKind.FLOAT, desc="筹资活动产生的现金流量净额"),
134
+ ColumnInfo(name="eff_fx_flu_cash", kind=ColumnKind.FLOAT, desc="汇率变动对现金的影响"),
135
+ ColumnInfo(name="n_incr_cash_cash_equ", kind=ColumnKind.FLOAT, desc="现金及现金等价物净增加额"),
136
+ ColumnInfo(name="c_cash_equ_beg_period", kind=ColumnKind.FLOAT, desc="期初现金及现金等价物余额"),
137
+ ColumnInfo(name="c_cash_equ_end_period", kind=ColumnKind.FLOAT, desc="期末现金及现金等价物余额"),
138
+ ColumnInfo(name="c_recp_cap_contrib", kind=ColumnKind.FLOAT, desc="吸收投资收到的现金"),
139
+ ColumnInfo(name="incl_cash_rec_saims", kind=ColumnKind.FLOAT, desc="其中:子公司吸收少数股东投资收到的现金"),
140
+ ColumnInfo(name="uncon_invest_loss", kind=ColumnKind.FLOAT, desc="未确认投资损失"),
141
+ ColumnInfo(name="prov_depr_assets", kind=ColumnKind.FLOAT, desc="加:资产减值准备"),
142
+ ColumnInfo(
143
+ name="depr_fa_coga_dpba", kind=ColumnKind.FLOAT, desc="固定资产折旧、油气资产折耗、生产性生物资产折旧"
144
+ ),
145
+ ColumnInfo(name="amort_intang_assets", kind=ColumnKind.FLOAT, desc="无形资产摊销"),
146
+ ColumnInfo(name="lt_amort_deferred_exp", kind=ColumnKind.FLOAT, desc="长期待摊费用摊销"),
147
+ ColumnInfo(name="decr_deferred_exp", kind=ColumnKind.FLOAT, desc="待摊费用减少"),
148
+ ColumnInfo(name="incr_acc_exp", kind=ColumnKind.FLOAT, desc="预提费用增加"),
149
+ ColumnInfo(name="loss_disp_fiolta", kind=ColumnKind.FLOAT, desc="处置固定、无形资产和其他长期资产的损失"),
150
+ ColumnInfo(name="loss_scr_fa", kind=ColumnKind.FLOAT, desc="固定资产报废损失"),
151
+ ColumnInfo(name="loss_fv_chg", kind=ColumnKind.FLOAT, desc="公允价值变动损失"),
152
+ ColumnInfo(name="invest_loss", kind=ColumnKind.FLOAT, desc="投资损失"),
153
+ ColumnInfo(name="decr_def_inc_tax_assets", kind=ColumnKind.FLOAT, desc="递延所得税资产减少"),
154
+ ColumnInfo(name="incr_def_inc_tax_liab", kind=ColumnKind.FLOAT, desc="递延所得税负债增加"),
155
+ ColumnInfo(name="decr_inventories", kind=ColumnKind.FLOAT, desc="存货的减少"),
156
+ ColumnInfo(name="decr_oper_payable", kind=ColumnKind.FLOAT, desc="经营性应收项目的减少"),
157
+ ColumnInfo(name="incr_oper_payable", kind=ColumnKind.FLOAT, desc="经营性应付项目的增加"),
158
+ ColumnInfo(name="others", kind=ColumnKind.FLOAT, desc="其他"),
159
+ ColumnInfo(name="im_net_cashflow_oper_act", kind=ColumnKind.FLOAT, desc="经营活动产生的现金流量净额(间接法)"),
160
+ ColumnInfo(name="conv_debt_into_cap", kind=ColumnKind.FLOAT, desc="债务转为资本"),
161
+ ColumnInfo(name="conv_copbonds_due_within_1y", kind=ColumnKind.FLOAT, desc="一年内到期的可转换公司债券"),
162
+ ColumnInfo(name="fa_fnc_leases", kind=ColumnKind.FLOAT, desc="融资租入固定资产"),
163
+ ColumnInfo(name="im_n_incr_cash_equ", kind=ColumnKind.FLOAT, desc="现金及现金等价物净增加额(间接法)"),
164
+ ColumnInfo(name="net_dism_capital_add", kind=ColumnKind.FLOAT, desc="拆出资金净增加额"),
165
+ ColumnInfo(name="net_cash_rece_sec", kind=ColumnKind.FLOAT, desc="代理买卖证券收到的现金净额(元)"),
166
+ ColumnInfo(name="credit_impa_loss", kind=ColumnKind.FLOAT, desc="信用减值损失"),
167
+ ColumnInfo(name="use_right_asset_dep", kind=ColumnKind.FLOAT, desc="使用权资产折旧"),
168
+ ColumnInfo(name="oth_loss_asset", kind=ColumnKind.FLOAT, desc="其他资产减值损失"),
169
+ ColumnInfo(name="end_bal_cash", kind=ColumnKind.FLOAT, desc="现金的期末余额"),
170
+ ColumnInfo(name="beg_bal_cash", kind=ColumnKind.FLOAT, desc="减:现金的期初余额"),
171
+ ColumnInfo(name="end_bal_cash_equ", kind=ColumnKind.FLOAT, desc="加:现金等价物的期末余额"),
172
+ ColumnInfo(name="beg_bal_cash_equ", kind=ColumnKind.FLOAT, desc="减:现金等价物的期初余额"),
173
+ ],
174
+ )
175
+ TARGET = TableInfo(
176
+ name=NAME,
177
+ desc="A股现金流量表数据(xfintech格式)",
178
+ meta={
179
+ "key": KEY,
180
+ "name": NAME,
181
+ "type": "partitioned",
182
+ "scale": "crosssection",
183
+ },
184
+ columns=[
185
+ ColumnInfo(name="code", kind=ColumnKind.STRING, desc="TS代码"),
186
+ ColumnInfo(name="date", kind=ColumnKind.STRING, desc="报告期日期(YYYY-MM-DD)"),
187
+ ColumnInfo(name="datecode", kind=ColumnKind.STRING, desc="报告期日期码(YYYYMMDD)"),
188
+ ColumnInfo(name="ann_date", kind=ColumnKind.STRING, desc="公告日期"),
189
+ ColumnInfo(name="f_ann_date", kind=ColumnKind.STRING, desc="实际公告日期"),
190
+ ColumnInfo(name="end_date", kind=ColumnKind.STRING, desc="报告期"),
191
+ ColumnInfo(name="comp_type", kind=ColumnKind.STRING, desc="公司类型(1一般工商业2银行3保险4证券)"),
192
+ ColumnInfo(name="report_type", kind=ColumnKind.STRING, desc="报表类型"),
193
+ ColumnInfo(name="end_type", kind=ColumnKind.STRING, desc="报告期类型"),
194
+ ColumnInfo(name="update_flag", kind=ColumnKind.STRING, desc="更新标志(1最新)"),
195
+ ColumnInfo(name="net_profit", kind=ColumnKind.FLOAT, desc="净利润"),
196
+ ColumnInfo(name="finan_exp", kind=ColumnKind.FLOAT, desc="财务费用"),
197
+ ColumnInfo(name="c_fr_sale_sg", kind=ColumnKind.FLOAT, desc="销售商品、提供劳务收到的现金"),
198
+ ColumnInfo(name="recp_tax_rends", kind=ColumnKind.FLOAT, desc="收到的税费返还"),
199
+ ColumnInfo(name="n_depos_incr_fi", kind=ColumnKind.FLOAT, desc="客户存款和同业存放款项净增加额"),
200
+ ColumnInfo(name="n_incr_loans_cb", kind=ColumnKind.FLOAT, desc="向中央银行借款净增加额"),
201
+ ColumnInfo(name="n_inc_borr_oth_fi", kind=ColumnKind.FLOAT, desc="向其他金融机构拆入资金净增加额"),
202
+ ColumnInfo(name="prem_fr_orig_contr", kind=ColumnKind.FLOAT, desc="收到原保险合同保费取得的现金"),
203
+ ColumnInfo(name="n_incr_insured_dep", kind=ColumnKind.FLOAT, desc="保户储金净增加额"),
204
+ ColumnInfo(name="n_reinsur_prem", kind=ColumnKind.FLOAT, desc="收到再保业务现金净额"),
205
+ ColumnInfo(name="n_incr_disp_tfa", kind=ColumnKind.FLOAT, desc="处置交易性金融资产净增加额"),
206
+ ColumnInfo(name="ifc_cash_incr", kind=ColumnKind.FLOAT, desc="收取利息和手续费净增加额"),
207
+ ColumnInfo(name="n_incr_disp_faas", kind=ColumnKind.FLOAT, desc="处置可供出售金融资产净增加额"),
208
+ ColumnInfo(name="n_incr_loans_oth_bank", kind=ColumnKind.FLOAT, desc="拆入资金净增加额"),
209
+ ColumnInfo(name="n_cap_incr_repur", kind=ColumnKind.FLOAT, desc="回购业务资金净增加额"),
210
+ ColumnInfo(name="c_fr_oth_operate_a", kind=ColumnKind.FLOAT, desc="收到其他与经营活动有关的现金"),
211
+ ColumnInfo(name="c_inf_fr_operate_a", kind=ColumnKind.FLOAT, desc="经营活动现金流入小计"),
212
+ ColumnInfo(name="c_paid_goods_s", kind=ColumnKind.FLOAT, desc="购买商品、接受劳务支付的现金"),
213
+ ColumnInfo(name="c_paid_to_for_empl", kind=ColumnKind.FLOAT, desc="支付给职工以及为职工支付的现金"),
214
+ ColumnInfo(name="c_paid_for_taxes", kind=ColumnKind.FLOAT, desc="支付的各项税费"),
215
+ ColumnInfo(name="n_incr_clt_loan_adv", kind=ColumnKind.FLOAT, desc="客户贷款及垫款净增加额"),
216
+ ColumnInfo(name="n_incr_dep_cbob", kind=ColumnKind.FLOAT, desc="存放央行和同业款项净增加额"),
217
+ ColumnInfo(name="c_pay_claims_orig_inco", kind=ColumnKind.FLOAT, desc="支付原保险合同赔付款项的现金"),
218
+ ColumnInfo(name="pay_handling_chrg", kind=ColumnKind.FLOAT, desc="支付手续费的现金"),
219
+ ColumnInfo(name="pay_comm_insur_plcy", kind=ColumnKind.FLOAT, desc="支付保单红利的现金"),
220
+ ColumnInfo(name="oth_cash_pay_oper_act", kind=ColumnKind.FLOAT, desc="支付其他与经营活动有关的现金"),
221
+ ColumnInfo(name="st_cash_out_act", kind=ColumnKind.FLOAT, desc="经营活动现金流出小计"),
222
+ ColumnInfo(name="n_cashflow_act", kind=ColumnKind.FLOAT, desc="经营活动产生的现金流量净额"),
223
+ ColumnInfo(name="oth_recp_ral_inv_act", kind=ColumnKind.FLOAT, desc="收到其他与投资活动有关的现金"),
224
+ ColumnInfo(name="c_disp_withdrwl_invest", kind=ColumnKind.FLOAT, desc="收回投资收到的现金"),
225
+ ColumnInfo(name="c_recp_return_invest", kind=ColumnKind.FLOAT, desc="取得投资收益收到的现金"),
226
+ ColumnInfo(
227
+ name="n_recp_disp_fiolta", kind=ColumnKind.FLOAT, desc="处置固定资产、无形资产和其他长期资产收回的现金净额"
228
+ ),
229
+ ColumnInfo(name="n_recp_disp_sobu", kind=ColumnKind.FLOAT, desc="处置子公司及其他营业单位收到的现金净额"),
230
+ ColumnInfo(name="stot_inflows_inv_act", kind=ColumnKind.FLOAT, desc="投资活动现金流入小计"),
231
+ ColumnInfo(
232
+ name="c_pay_acq_const_fiolta", kind=ColumnKind.FLOAT, desc="购建固定资产、无形资产和其他长期资产支付的现金"
233
+ ),
234
+ ColumnInfo(name="c_paid_invest", kind=ColumnKind.FLOAT, desc="投资支付的现金"),
235
+ ColumnInfo(name="n_disp_subs_oth_biz", kind=ColumnKind.FLOAT, desc="取得子公司及其他营业单位支付的现金净额"),
236
+ ColumnInfo(name="oth_pay_ral_inv_act", kind=ColumnKind.FLOAT, desc="支付其他与投资活动有关的现金"),
237
+ ColumnInfo(name="n_incr_pledge_loan", kind=ColumnKind.FLOAT, desc="质押贷款净增加额"),
238
+ ColumnInfo(name="stot_out_inv_act", kind=ColumnKind.FLOAT, desc="投资活动现金流出小计"),
239
+ ColumnInfo(name="n_cashflow_inv_act", kind=ColumnKind.FLOAT, desc="投资活动产生的现金流量净额"),
240
+ ColumnInfo(name="c_recp_borrow", kind=ColumnKind.FLOAT, desc="取得借款收到的现金"),
241
+ ColumnInfo(name="proc_issue_bonds", kind=ColumnKind.FLOAT, desc="发行债券收到的现金"),
242
+ ColumnInfo(name="oth_cash_recp_ral_fnc_act", kind=ColumnKind.FLOAT, desc="收到其他与筹资活动有关的现金"),
243
+ ColumnInfo(name="stot_cash_in_fnc_act", kind=ColumnKind.FLOAT, desc="筹资活动现金流入小计"),
244
+ ColumnInfo(name="free_cashflow", kind=ColumnKind.FLOAT, desc="企业自由现金流量"),
245
+ ColumnInfo(name="c_prepay_amt_borr", kind=ColumnKind.FLOAT, desc="偿还债务支付的现金"),
246
+ ColumnInfo(name="c_pay_dist_dpcp_int_exp", kind=ColumnKind.FLOAT, desc="分配股利、利润或偿付利息支付的现金"),
247
+ ColumnInfo(
248
+ name="incl_dvd_profit_paid_sc_ms", kind=ColumnKind.FLOAT, desc="其中:子公司支付给少数股东的股利、利润"
249
+ ),
250
+ ColumnInfo(name="oth_cashpay_ral_fnc_act", kind=ColumnKind.FLOAT, desc="支付其他与筹资活动有关的现金"),
251
+ ColumnInfo(name="stot_cashout_fnc_act", kind=ColumnKind.FLOAT, desc="筹资活动现金流出小计"),
252
+ ColumnInfo(name="n_cash_flows_fnc_act", kind=ColumnKind.FLOAT, desc="筹资活动产生的现金流量净额"),
253
+ ColumnInfo(name="eff_fx_flu_cash", kind=ColumnKind.FLOAT, desc="汇率变动对现金的影响"),
254
+ ColumnInfo(name="n_incr_cash_cash_equ", kind=ColumnKind.FLOAT, desc="现金及现金等价物净增加额"),
255
+ ColumnInfo(name="c_cash_equ_beg_period", kind=ColumnKind.FLOAT, desc="期初现金及现金等价物余额"),
256
+ ColumnInfo(name="c_cash_equ_end_period", kind=ColumnKind.FLOAT, desc="期末现金及现金等价物余额"),
257
+ ColumnInfo(name="c_recp_cap_contrib", kind=ColumnKind.FLOAT, desc="吸收投资收到的现金"),
258
+ ColumnInfo(name="incl_cash_rec_saims", kind=ColumnKind.FLOAT, desc="其中:子公司吸收少数股东投资收到的现金"),
259
+ ColumnInfo(name="uncon_invest_loss", kind=ColumnKind.FLOAT, desc="未确认投资损失"),
260
+ ColumnInfo(name="prov_depr_assets", kind=ColumnKind.FLOAT, desc="加:资产减值准备"),
261
+ ColumnInfo(
262
+ name="depr_fa_coga_dpba", kind=ColumnKind.FLOAT, desc="固定资产折旧、油气资产折耗、生产性生物资产折旧"
263
+ ),
264
+ ColumnInfo(name="amort_intang_assets", kind=ColumnKind.FLOAT, desc="无形资产摊销"),
265
+ ColumnInfo(name="lt_amort_deferred_exp", kind=ColumnKind.FLOAT, desc="长期待摊费用摊销"),
266
+ ColumnInfo(name="decr_deferred_exp", kind=ColumnKind.FLOAT, desc="待摊费用减少"),
267
+ ColumnInfo(name="incr_acc_exp", kind=ColumnKind.FLOAT, desc="预提费用增加"),
268
+ ColumnInfo(name="loss_disp_fiolta", kind=ColumnKind.FLOAT, desc="处置固定、无形资产和其他长期资产的损失"),
269
+ ColumnInfo(name="loss_scr_fa", kind=ColumnKind.FLOAT, desc="固定资产报废损失"),
270
+ ColumnInfo(name="loss_fv_chg", kind=ColumnKind.FLOAT, desc="公允价值变动损失"),
271
+ ColumnInfo(name="invest_loss", kind=ColumnKind.FLOAT, desc="投资损失"),
272
+ ColumnInfo(name="decr_def_inc_tax_assets", kind=ColumnKind.FLOAT, desc="递延所得税资产减少"),
273
+ ColumnInfo(name="incr_def_inc_tax_liab", kind=ColumnKind.FLOAT, desc="递延所得税负债增加"),
274
+ ColumnInfo(name="decr_inventories", kind=ColumnKind.FLOAT, desc="存货的减少"),
275
+ ColumnInfo(name="decr_oper_payable", kind=ColumnKind.FLOAT, desc="经营性应收项目的减少"),
276
+ ColumnInfo(name="incr_oper_payable", kind=ColumnKind.FLOAT, desc="经营性应付项目的增加"),
277
+ ColumnInfo(name="others", kind=ColumnKind.FLOAT, desc="其他"),
278
+ ColumnInfo(name="im_net_cashflow_oper_act", kind=ColumnKind.FLOAT, desc="经营活动产生的现金流量净额(间接法)"),
279
+ ColumnInfo(name="conv_debt_into_cap", kind=ColumnKind.FLOAT, desc="债务转为资本"),
280
+ ColumnInfo(name="conv_copbonds_due_within_1y", kind=ColumnKind.FLOAT, desc="一年内到期的可转换公司债券"),
281
+ ColumnInfo(name="fa_fnc_leases", kind=ColumnKind.FLOAT, desc="融资租入固定资产"),
282
+ ColumnInfo(name="im_n_incr_cash_equ", kind=ColumnKind.FLOAT, desc="现金及现金等价物净增加额(间接法)"),
283
+ ColumnInfo(name="net_dism_capital_add", kind=ColumnKind.FLOAT, desc="拆出资金净增加额"),
284
+ ColumnInfo(name="net_cash_rece_sec", kind=ColumnKind.FLOAT, desc="代理买卖证券收到的现金净额(元)"),
285
+ ColumnInfo(name="credit_impa_loss", kind=ColumnKind.FLOAT, desc="信用减值损失"),
286
+ ColumnInfo(name="use_right_asset_dep", kind=ColumnKind.FLOAT, desc="使用权资产折旧"),
287
+ ColumnInfo(name="oth_loss_asset", kind=ColumnKind.FLOAT, desc="其他资产减值损失"),
288
+ ColumnInfo(name="end_bal_cash", kind=ColumnKind.FLOAT, desc="现金的期末余额"),
289
+ ColumnInfo(name="beg_bal_cash", kind=ColumnKind.FLOAT, desc="减:现金的期初余额"),
290
+ ColumnInfo(name="end_bal_cash_equ", kind=ColumnKind.FLOAT, desc="加:现金等价物的期末余额"),
291
+ ColumnInfo(name="beg_bal_cash_equ", kind=ColumnKind.FLOAT, desc="减:现金等价物的期初余额"),
292
+ ],
293
+ )