tushare 1.4.20__tar.gz → 1.4.22__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 (84) hide show
  1. {tushare-1.4.20 → tushare-1.4.22}/PKG-INFO +10 -1
  2. {tushare-1.4.20 → tushare-1.4.22}/setup.py +10 -1
  3. {tushare-1.4.20 → tushare-1.4.22}/tushare/__init__.py +1 -1
  4. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/histroy_divide.py +67 -1
  5. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/rtq.py +1 -1
  6. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/format_stock_code.py +3 -1
  7. {tushare-1.4.20 → tushare-1.4.22}/tushare.egg-info/PKG-INFO +10 -1
  8. {tushare-1.4.20 → tushare-1.4.22}/LICENSE +0 -0
  9. {tushare-1.4.20 → tushare-1.4.22}/README.md +0 -0
  10. {tushare-1.4.20 → tushare-1.4.22}/setup.cfg +0 -0
  11. {tushare-1.4.20 → tushare-1.4.22}/tushare/bond/__init__.py +0 -0
  12. {tushare-1.4.20 → tushare-1.4.22}/tushare/bond/bonds.py +0 -0
  13. {tushare-1.4.20 → tushare-1.4.22}/tushare/coins/__init__.py +0 -0
  14. {tushare-1.4.20 → tushare-1.4.22}/tushare/coins/market.py +0 -0
  15. {tushare-1.4.20 → tushare-1.4.22}/tushare/data/__init__.py +0 -0
  16. {tushare-1.4.20 → tushare-1.4.22}/tushare/fund/__init__.py +0 -0
  17. {tushare-1.4.20 → tushare-1.4.22}/tushare/fund/cons.py +0 -0
  18. {tushare-1.4.20 → tushare-1.4.22}/tushare/fund/nav.py +0 -0
  19. {tushare-1.4.20 → tushare-1.4.22}/tushare/futures/__init__.py +0 -0
  20. {tushare-1.4.20 → tushare-1.4.22}/tushare/futures/cons.py +0 -0
  21. {tushare-1.4.20 → tushare-1.4.22}/tushare/futures/domestic.py +0 -0
  22. {tushare-1.4.20 → tushare-1.4.22}/tushare/futures/domestic_cons.py +0 -0
  23. {tushare-1.4.20 → tushare-1.4.22}/tushare/futures/intlfutures.py +0 -0
  24. {tushare-1.4.20 → tushare-1.4.22}/tushare/internet/__init__.py +0 -0
  25. {tushare-1.4.20 → tushare-1.4.22}/tushare/internet/boxoffice.py +0 -0
  26. {tushare-1.4.20 → tushare-1.4.22}/tushare/internet/caixinnews.py +0 -0
  27. {tushare-1.4.20 → tushare-1.4.22}/tushare/internet/indexes.py +0 -0
  28. {tushare-1.4.20 → tushare-1.4.22}/tushare/pro/__init__.py +0 -0
  29. {tushare-1.4.20 → tushare-1.4.22}/tushare/pro/client.py +0 -0
  30. {tushare-1.4.20 → tushare-1.4.22}/tushare/pro/data_pro.py +0 -0
  31. {tushare-1.4.20 → tushare-1.4.22}/tushare/pro/llm.py +0 -0
  32. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/__init__.py +0 -0
  33. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/billboard.py +0 -0
  34. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/classifying.py +0 -0
  35. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/cons.py +0 -0
  36. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/fundamental.py +0 -0
  37. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/globals.py +0 -0
  38. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/indictor.py +0 -0
  39. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/macro.py +0 -0
  40. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/macro_vars.py +0 -0
  41. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/minsdata.py +0 -0
  42. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/news_vars.py +0 -0
  43. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/newsevent.py +0 -0
  44. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/ref_vars.py +0 -0
  45. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/reference.py +0 -0
  46. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/rtq_vars.py +0 -0
  47. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/shibor.py +0 -0
  48. {tushare-1.4.20 → tushare-1.4.22}/tushare/stock/trading.py +0 -0
  49. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/__init__.py +0 -0
  50. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/ht_subs/__init__.py +0 -0
  51. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/ht_subs/covert.py +0 -0
  52. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/ht_subs/subscribe.py +0 -0
  53. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/model/__init__.py +0 -0
  54. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/model/min.py +0 -0
  55. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/model/tick.py +0 -0
  56. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/tgw_subs/__init__.py +0 -0
  57. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/tgw_subs/convert.py +0 -0
  58. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/tgw_subs/login.py +0 -0
  59. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/tgw_subs/subscribe.py +0 -0
  60. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/ts_subs/__init__.py +0 -0
  61. {tushare-1.4.20 → tushare-1.4.22}/tushare/subs/ts_subs/subscribe.py +0 -0
  62. {tushare-1.4.20 → tushare-1.4.22}/tushare/trader/__init__.py +0 -0
  63. {tushare-1.4.20 → tushare-1.4.22}/tushare/trader/trader.py +0 -0
  64. {tushare-1.4.20 → tushare-1.4.22}/tushare/trader/utils.py +0 -0
  65. {tushare-1.4.20 → tushare-1.4.22}/tushare/trader/vars.py +0 -0
  66. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/__init__.py +0 -0
  67. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/common.py +0 -0
  68. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/conns.py +0 -0
  69. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/dateu.py +0 -0
  70. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/form_date.py +0 -0
  71. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/formula.py +0 -0
  72. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/mailmerge.py +0 -0
  73. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/netbase.py +0 -0
  74. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/protobuf/__init__.py +0 -0
  75. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/protobuf/funcs.py +0 -0
  76. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/protobuf/response_pb2.py +0 -0
  77. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/store.py +0 -0
  78. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/upass.py +0 -0
  79. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/vars.py +0 -0
  80. {tushare-1.4.20 → tushare-1.4.22}/tushare/util/verify_token.py +0 -0
  81. {tushare-1.4.20 → tushare-1.4.22}/tushare.egg-info/SOURCES.txt +0 -0
  82. {tushare-1.4.20 → tushare-1.4.22}/tushare.egg-info/dependency_links.txt +0 -0
  83. {tushare-1.4.20 → tushare-1.4.22}/tushare.egg-info/requires.txt +0 -0
  84. {tushare-1.4.20 → tushare-1.4.22}/tushare.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tushare
3
- Version: 1.4.20
3
+ Version: 1.4.22
4
4
  Summary: A utility for crawling historical and Real-time Quotes data of China stocks
5
5
  Home-page: https://tushare.pro
6
6
  Author: Jimmy Liu
@@ -80,6 +80,15 @@ return::
80
80
 
81
81
  Log
82
82
  --------------
83
+ 1.4.22
84
+ -------
85
+ - 新增 realtime_tick 腾讯源
86
+ --------------
87
+ 1.4.21
88
+ -------
89
+ - 修复 realtime_list ts_code 格式化
90
+ --------------
91
+ --------------
83
92
  1.4.20
84
93
  -------
85
94
  - 修复 realtime_list 数值对应问题 close->price pre_close->close
@@ -64,6 +64,15 @@ return::
64
64
 
65
65
  Log
66
66
  --------------
67
+ 1.4.22
68
+ -------
69
+ - 新增 realtime_tick 腾讯源
70
+ --------------
71
+ 1.4.21
72
+ -------
73
+ - 修复 realtime_list ts_code 格式化
74
+ --------------
75
+ --------------
67
76
  1.4.20
68
77
  -------
69
78
  - 修复 realtime_list 数值对应问题 close->price pre_close->close
@@ -115,7 +124,7 @@ def read_install_requires():
115
124
 
116
125
  setup(
117
126
  name='tushare',
118
- version='1.4.20',
127
+ version='1.4.22',
119
128
  description='A utility for crawling historical and Real-time Quotes data of China stocks',
120
129
  # long_description=read("README.rst"),
121
130
  long_description=long_desc,
@@ -2,7 +2,7 @@
2
2
  import codecs
3
3
  import os
4
4
 
5
- __version__ = '1.4.20'
5
+ __version__ = '1.4.22'
6
6
  __author__ = 'Jimmy Liu'
7
7
 
8
8
  """
@@ -16,6 +16,7 @@ from tushare.util.verify_token import require_permission
16
16
  from tushare.util.format_stock_code import format_stock_code
17
17
  from tushare.stock.rtq_vars import zh_sina_a_stock_cookies, zh_sina_a_stock_headers
18
18
  import time
19
+ import json
19
20
  from typing import Optional
20
21
  from tushare.util.form_date import get_current_date
21
22
  from tushare.stock import rtq_vars
@@ -50,6 +51,8 @@ def realtime_tick(ts_code: str = "000001.SZ", src: Optional[str] = "tx",
50
51
  symbol = symbol_verify(ts_code)
51
52
  if src == "sina":
52
53
  return get_stock_sina_a_divide_amount(symbol, page_count)
54
+ elif src == 'dc':
55
+ return get_stock_dc_a_divide_amount(symbol, page_count)
53
56
  else:
54
57
  return get_stock_tx_a_divide_amount(symbol, page_count)
55
58
 
@@ -183,7 +186,70 @@ def get_stock_sina_a_divide_amount(symbol: str = "sz000001", page_count: Optiona
183
186
  return big_df
184
187
 
185
188
 
189
+ def __event_stream(url, params, ):
190
+ response = requests.get(url, params=params, stream=True)
191
+ event_data = ""
192
+
193
+ for line in response.iter_lines():
194
+ # 过滤掉保持连接的空行
195
+ if line:
196
+ event_data += line.decode() + "\n"
197
+ elif event_data:
198
+ yield event_data
199
+ event_data = ""
200
+
201
+
202
+ def get_stock_dc_a_divide_amount(symbol: str = "000001", page_count: Optional[int] = None) -> pd.DataFrame:
203
+ """
204
+ 东方财富-分时数据
205
+ https://quote.eastmoney.com/f1.html?newcode=0.000001
206
+ :param symbol: 股票代码
207
+ :type symbol: str
208
+ :return: 分时数据
209
+ :rtype: pandas.DataFrame
210
+ """
211
+ symbols = str(symbol).lower().split(".")
212
+ symbol = symbols[0]
213
+ # print(symbol)
214
+ market_code = 1 if symbol.startswith("6") else 0
215
+ url = "https://70.push2.eastmoney.com/api/qt/stock/details/sse"
216
+ params = {
217
+ "fields1": "f1,f2,f3,f4",
218
+ "fields2": "f51,f52,f53,f54,f55",
219
+ "mpi": "2000",
220
+ "ut": "bd1d9ddb04089700cf9c27f6f7426281",
221
+ "fltt": "2",
222
+ "pos": "-0",
223
+ "secid": f"{market_code}.{symbol}",
224
+ "wbp2u": "|0|0|0|web",
225
+ }
226
+
227
+ big_df = pd.DataFrame() # 创建一个空的 DataFrame
228
+
229
+ for event in __event_stream(url, params):
230
+ # 从每个事件的数据行中删除 "data: ",然后解析 JSON
231
+ event_json = json.loads(event.replace("data: ", ""))
232
+ # 将 JSON 数据转换为 DataFrame,然后添加到主 DataFrame 中
233
+ temp_df = pd.DataFrame(
234
+ [item.split(",") for item in event_json["data"]["details"]]
235
+ )
236
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
237
+ break
238
+
239
+ big_df.columns = ["TIME", "PRICE", "AMOUNT", "-", "TYPE"]
240
+ big_df["TYPE"] = big_df["TYPE"].map(
241
+ {"2": "买盘", "1": "卖盘", "4": "中性盘"}
242
+ )
243
+ big_df = big_df[["TIME", "PRICE", "AMOUNT", "TYPE"]]
244
+ big_df["PRICE"] = pd.to_numeric(big_df["PRICE"], errors="coerce")
245
+ big_df["AMOUNT"] = pd.to_numeric(big_df["AMOUNT"], errors="coerce")
246
+
247
+ return big_df
248
+
249
+
186
250
  if __name__ == '__main__':
187
- df = realtime_tick(ts_code="000001.SZ", src="tx", page_count=1)
251
+ df = realtime_tick(ts_code="000001.SZ", src="dc", page_count=1)
188
252
  print(help(realtime_tick))
189
253
  print(df)
254
+ # r = get_stock_dc_a_divide_amount()
255
+ # print(r)
@@ -646,7 +646,7 @@ def format_str_to_float(x):
646
646
  if __name__ == '__main__':
647
647
  # df = realtime_quote(ts_code="000688.SH,000010.SH,000012.SH,399005.SZ", src="sina")
648
648
  # df = realtime_list(src="dc", page_count=1)
649
- df = realtime_list(src="dc")
649
+ df = realtime_list(src="sina")
650
650
  print(df)
651
651
  # ts_code = '399005.SZ'
652
652
  # ts_code = '000001.SZ'
@@ -17,6 +17,8 @@ def format_stock_code(x, special=""):
17
17
  @return:
18
18
  """
19
19
  x = str(x)
20
+ x = "".join(filter(str.isdigit, x))
21
+
20
22
  stock_len = 6
21
23
  hk_stock_len = 5
22
24
  if special:
@@ -116,5 +118,5 @@ if __name__ == '__main__':
116
118
  # s = symbol_verify("000001.SZ")
117
119
  # s = symbols_f("000001", special="港股")
118
120
  # s = verify_stock_or_index(x="399005.SZ")
119
- s = format_stock_code(x="92052")
121
+ s = format_stock_code(x="sz92052")
120
122
  print(s)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tushare
3
- Version: 1.4.20
3
+ Version: 1.4.22
4
4
  Summary: A utility for crawling historical and Real-time Quotes data of China stocks
5
5
  Home-page: https://tushare.pro
6
6
  Author: Jimmy Liu
@@ -80,6 +80,15 @@ return::
80
80
 
81
81
  Log
82
82
  --------------
83
+ 1.4.22
84
+ -------
85
+ - 新增 realtime_tick 腾讯源
86
+ --------------
87
+ 1.4.21
88
+ -------
89
+ - 修复 realtime_list ts_code 格式化
90
+ --------------
91
+ --------------
83
92
  1.4.20
84
93
  -------
85
94
  - 修复 realtime_list 数值对应问题 close->price pre_close->close
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes