chinadata 0.4.0__py3-none-any.whl → 0.4.1__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.
chinadata/ca_data.py CHANGED
@@ -709,65 +709,6 @@ class pro_api:
709
709
 
710
710
  def kpl_concept_cons(self, api_name='kpl_concept_cons', **kwargs):
711
711
  return self.query(token=self.token, api_name=api_name, **kwargs)
712
- def request_with_retry(self,url, max_retries,):
713
- for attempt in range(max_retries):
714
- try:
715
- response = requests.get(url=url, timeout=100, )
716
- response.raise_for_status()
717
- return response
718
- except Exception as e:
719
- # print(f"尝试 {attempt + 1} 失败: {e}")
720
- if attempt < max_retries - 1:
721
- wait_time = 1 * (2 ** attempt) # 指数退避
722
- # print(f"等待 {wait_time} 秒后重试...")
723
- time.sleep(wait_time)
724
- # print(f"请求失败,已重试 {max_retries} 次")
725
- return None
726
-
727
- def rt_min(self,ts_code,freq,max_retries=3):
728
- url = f"http://39.105.209.102:9002/csi/stock/min/rt_min/{ts_code}/{freq}/{self.token}"
729
- r=self.request_with_retry(url, max_retries=max_retries)
730
- df=pd.DataFrame(r.json())
731
- df['time'] = pd.to_datetime(df['time'])
732
- if freq == '60min':
733
- periods = {
734
- '09:15-10:30': ('09:15:00', '10:30:00'),
735
- '10:31-11:30': ('10:31:00', '11:30:00'),
736
- '13:01-14:00': ('13:01:00', '14:00:00'),
737
- '14:01-15:00': ('14:01:00', '15:00:00')
738
- }
739
- result = []
740
- for name, (start, end) in periods.items():
741
- mask = (df['time'].dt.strftime('%H:%M:%S') >= start) & \
742
- (df['time'].dt.strftime('%H:%M:%S') <= end)
743
- data = df[mask]
744
- if len(data) > 0:
745
- result.append({
746
- 'ts_code': df.iloc[0]['ts_code'],
747
- 'time': end,
748
- 'open': data.iloc[0]['open'],
749
- 'high': data['high'].max(),
750
- 'low': data['low'].min(),
751
- 'close': data.iloc[-1]['close'],
752
- 'vol': data['vol'].sum(),
753
- 'amount': data['amount'].sum()
754
- })
755
- df = pd.DataFrame(result)
756
-
757
- else:
758
- # 设置为索引
759
- df.set_index('time', inplace=True)
760
- df = df.resample(freq, label='right', closed='right').agg({
761
- 'ts_code': 'first',
762
- 'open': 'first',
763
- 'high': 'max',
764
- 'low': 'min',
765
- 'close': 'last',
766
- 'vol': 'sum',
767
- 'amount': 'sum',
768
- }).dropna().reset_index()[[ 'ts_code','time','open','high','low','close','vol','amount']]
769
-
770
- return df
771
712
 
772
713
  def stk_auction_o(self, api_name='stk_auction_o', **kwargs):
773
714
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: chinadata
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Author: xc
5
5
  Author-email: utyu@gmail.com
6
6
  Platform: any
@@ -0,0 +1,7 @@
1
+ chinadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ chinadata/ca_data.py,sha256=FFYnTvrUUnyqEVPqBclmYTyHA2OO_pT0b9IW7LZ-YV0,36436
3
+ chinadata/example.py,sha256=x2veHR97H3ym1ekSc7Kfi1v4RrH7M-d1mm2oqXWEM08,613
4
+ chinadata-0.4.1.dist-info/METADATA,sha256=Dj_Ws1-IUrtj9LA9069sls3HixAVGDB2kOqubhKNvpo,161
5
+ chinadata-0.4.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
6
+ chinadata-0.4.1.dist-info/top_level.txt,sha256=Ptxvu9uzRHP4kVGRf413KuwSvsY2mk_KgQJ6ssWwisU,10
7
+ chinadata-0.4.1.dist-info/RECORD,,
@@ -1,7 +0,0 @@
1
- chinadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- chinadata/ca_data.py,sha256=INTsbrcsyQjfp051erJE_gauQdmxeVyTY697auQwAZQ,39038
3
- chinadata/example.py,sha256=x2veHR97H3ym1ekSc7Kfi1v4RrH7M-d1mm2oqXWEM08,613
4
- chinadata-0.4.0.dist-info/METADATA,sha256=rjdTdZFEyYcoKk9ohLbDF_bPIXktXmeuUTzxcnybqnw,161
5
- chinadata-0.4.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
6
- chinadata-0.4.0.dist-info/top_level.txt,sha256=Ptxvu9uzRHP4kVGRf413KuwSvsY2mk_KgQJ6ssWwisU,10
7
- chinadata-0.4.0.dist-info/RECORD,,