siat 3.2.58__py3-none-any.whl → 3.2.59__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.
siat/common.py CHANGED
@@ -3985,8 +3985,6 @@ def show_df(data,search_mode=False):
3985
3985
  """
3986
3986
 
3987
3987
  import pandas as pd
3988
- # 设置列对齐方式为靠左
3989
- pd.set_option('display.align', 'left')
3990
3988
 
3991
3989
  if not isinstance(data,pd.DataFrame):
3992
3990
  print("#Warning: the first parameter must be a dataframe")
siat/markowitz2.py CHANGED
@@ -737,7 +737,7 @@ def portfolio_expectation_universal(pname,member_returns,portfolio_weights,membe
737
737
  print(" ***投资组合持仓策略***")
738
738
  print_tickerlist_sharelist(tickerlist,portfolio_weights,leading_blanks=4,ticker_type=ticker_type)
739
739
 
740
- print(" *来源:Sina/EM/stooq,"+str(stoday)+"统计")
740
+ print(" *数据来源:Sina/EM/Stooq/Yahoo,"+str(stoday)+"统计")
741
741
  else:
742
742
  print("\n ======= Investment Portfolio: Return and Risk =======")
743
743
  print(" Investment portfolio:",pname)
@@ -749,7 +749,7 @@ def portfolio_expectation_universal(pname,member_returns,portfolio_weights,membe
749
749
  print(" ***Portfolio Constructing Strategy***")
750
750
  print_tickerlist_sharelist(tickerlist,portfolio_weights,4)
751
751
 
752
- print(" *Source: sina/eastmoney/stooq,"+str(stoday))
752
+ print(" *Data source: Sina/EM/Stooq/Yahoo, "+str(stoday))
753
753
 
754
754
  return
755
755
 
@@ -1233,7 +1233,7 @@ def portfolio_eset(pf_info,simulation=1000,convex_hull=False):
1233
1233
  footnote1="年化收益率标准差-->"
1234
1234
  footnote2="\n\n基于给定的成份证券构造"+str(simulation)+"个投资组合"
1235
1235
  footnote3="\n观察期间:"+hstart+"至"+hend
1236
- footnote4="\n来源: Sina/EM/Stooq/Yahoo, "+str(stoday)
1236
+ footnote4="\n数据来源: Sina/EM/Stooq/Yahoo, "+str(stoday)
1237
1237
  else:
1238
1238
  if pname == '': pname='Investment Portfolio'
1239
1239
 
@@ -1244,7 +1244,7 @@ def portfolio_eset(pf_info,simulation=1000,convex_hull=False):
1244
1244
  footnote1="Annualized Std -->\n\n"
1245
1245
  footnote2="Based on given securities, constructed "+str(simulation)+" portfolios\n"
1246
1246
  footnote3="Period of observation: "+hstart+" to "+hend
1247
- footnote4="\nSource: Sina/EM/Stooq/Yahoo, "+str(stoday)
1247
+ footnote4="\nData source: Sina/EM/Stooq/Yahoo, "+str(stoday)
1248
1248
 
1249
1249
  plt.xlabel(footnote1+footnote2+footnote3+footnote4,fontsize=xlabel_txt_size)
1250
1250
 
@@ -2625,7 +2625,7 @@ def security_correlation(tickers,start,end,info_type='Close'):
2625
2625
 
2626
2626
  footnote3="\n观察期间: "+start+'至'+end
2627
2627
  import datetime as dt; stoday=dt.date.today()
2628
- footnote4=";来源:Sina/EM/stooq/Yahoo,"+str(stoday)
2628
+ footnote4=";数据来源:Sina/EM/stooq/Yahoo,"+str(stoday)
2629
2629
 
2630
2630
  fontxlabel={'size':6}
2631
2631
  plt.xlabel(footnote1+footnote2+footnote3+footnote4,fontxlabel)
siat/translate.py CHANGED
@@ -17,6 +17,7 @@ SIAT:Security Investment Analysis Tool
17
17
  #关闭所有警告
18
18
  import warnings; warnings.filterwarnings('ignore')
19
19
  from siat.common import *
20
+ from siat.yf_name import *
20
21
  #==============================================================================
21
22
  def ectranslate(eword):
22
23
  """
@@ -1951,13 +1952,16 @@ def codetranslate1(code):
1951
1952
  ['^NDQ','NASDAQ Composite Index'],['^NDX','NASDAQ 100 Index'],
1952
1953
  ['IBM','IBM Corp'],
1953
1954
 
1954
- ['1155.KL','Maybank'],['5347.KL','Tenaga Nasional Berhad'],
1955
- ['1295.KL','Public Bank Berhad'],['1066.KL','RHB Bank'],
1956
- ['5819.KL','Hong Leong Bank'],['5183.KL','Petronas Chemical'],
1957
- ['7113.KL','Top Glove Bhd'],['3182.KL','Genting Berhad'],
1958
- ['6888.KL','Axiata Berhad'],['1015.KL','AmBank'],
1955
+ ['1155.KL','Maybank(KL)'],['5347.KL','Tenaga Nasional(KL)'],
1956
+ ['1295.KL','Public Bank(KL)'],['1066.KL','RHB Bank(KL)'],
1957
+ ['5819.KL','Hong Leong Bank(KL)'],['5183.KL','Petronas Chemical(KL)'],
1958
+ ['7113.KL','Top Glove(KL)'],['3182.KL','Genting(KL)'],
1959
+ ['6888.KL','Axiata(KL)'],['1015.KL','AmBank(KL)'],
1959
1960
 
1960
- ['D05.SI','DBS Bank(SG)'],['U11.SI','UOB Bank(SG)'],['O39.SI','OCBC Bank(SG)'],
1961
+ ['D05.SI','DBS Bank(SG)'],['DBSDY','DBS Bank(US)'],
1962
+ ['U11.SI','UOB Bank(SG)'],['UOVEY','UOB Bank(US)'],
1963
+ ['O39.SI','OCBC Bank(SG)'],['OVCHY','OCBC Bank(US)'],
1964
+ ['S41.SI','Hong Leong Finance(SG)'],
1961
1965
 
1962
1966
  ['000002.SS','SSE A Index'],['000003.SS','SSE B Index'],
1963
1967
  ['399107.SZ','SZE A Index'],['399108.SZ','SZE B Index'],
@@ -3263,10 +3267,9 @@ def ticker1_name(ticker,ticker_type='auto'):
3263
3267
  return tname
3264
3268
  """
3265
3269
  tname=codetranslate(ticker)
3266
- if tname != ticker: #翻译成功
3270
+ if tname != ticker: #翻译成功,注意证券代码与其名称相同的情形,例如IBM
3267
3271
  return tname
3268
3272
 
3269
-
3270
3273
  symbol=ticker1_cvt2yahoo(ticker)
3271
3274
 
3272
3275
  #申万行业指数
@@ -3325,19 +3328,28 @@ def ticker1_name(ticker,ticker_type='auto'):
3325
3328
  if '基金' not in tname: tname=tname + '基金'
3326
3329
  break
3327
3330
 
3331
+ #如未查到,尝试雅虎名称
3332
+ if tname==symbol:
3333
+ #不包括中国大陆和香港证券,这些都应在前面查到?新上市的可能查不到
3334
+ #if ('.SS' not in symbol) and ('.SH' not in symbol) and ('.SZ' not in symbol) and ('.BJ' not in symbol) and ('.HK' not in symbol):
3335
+ tname=yahoo_name2(symbol)
3336
+ if tname==symbol:
3337
+ return tname
3338
+
3328
3339
  #加港股标记
3329
- if ('.HK' in ticker) and not ("港股" in tname):
3330
- tname=tname+"港股"
3340
+ if ('.HK' in ticker) and not (text_lang("港股","(HK)") in tname):
3341
+ tname=tname+text_lang("港股","(HK)")
3331
3342
  #加港股人民币柜台标志
3332
3343
  HKcode=ticker.split('.')[0]
3333
- if len(HKcode)==5 and HKcode[0]=='8' and not ("人民币" in tname):
3334
- tname=tname+"(人民币)"
3344
+ if len(HKcode)==5 and HKcode[0]=='8' and not (text_lang("人民币","(RMB)") in tname):
3345
+ tname=tname+text_lang("人民币","(RMB)")
3335
3346
 
3336
- #加美股标记
3347
+ #加美股标记:绝大多数中概股在前面已经查完,真正美股没必要标注美股
3337
3348
  """
3338
- if len(ticker.split('.'))==1 and not ("美股" in tname):
3339
- tname=tname+"美股"
3340
- """
3349
+ if len(ticker.split('.'))==1 and not (text_lang("美股","(US)") in tname):
3350
+ tname=tname+text_lang("美股","(US)")
3351
+ """
3352
+
3341
3353
  return tname
3342
3354
 
3343
3355
  #==============================================================================
siat/yf_name.py ADDED
@@ -0,0 +1,325 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ 本模块功能:SIAT公共转换函数,获取雅虎证券代码英文名称
4
+ 所属工具包:证券投资分析工具SIAT
5
+ SIAT:Security Investment Analysis Tool
6
+ 创建日期:2024年7月12日
7
+ 最新修订日期:
8
+ 作者:王德宏 (WANG Dehong, Peter)
9
+ 作者单位:北京外国语大学国际商学院
10
+ 作者邮件:wdehong2000@163.com
11
+ 版权所有:王德宏
12
+ 用途限制:仅限研究与教学使用,不可商用!商用需要额外授权。
13
+ 特别声明:作者不对使用本工具进行证券投资导致的任何损益负责!
14
+ """
15
+ #==============================================================================
16
+ #关闭所有警告
17
+ import warnings; warnings.filterwarnings('ignore')
18
+
19
+ #==============================================================================
20
+ if __name__=='__main__':
21
+ test_yahoo_access()
22
+
23
+ def test_yahoo_access():
24
+ """
25
+ 功能:测试雅虎财经是否可达
26
+ """
27
+ url="https://finance.yahoo.com"
28
+ result=test_website(url)
29
+
30
+ return result
31
+
32
+ if __name__=='__main__':
33
+ url="https://finance.yahoo.com"
34
+ test_website(url)
35
+
36
+ def test_website(url):
37
+ import requests
38
+ try:
39
+ response = requests.get(url)
40
+ if response.status_code == 200:
41
+ #print(f"Website {url} is accessible")
42
+ return True
43
+ else:
44
+ #print(f"Website {url} access failed,Code:{response.status_code}")
45
+ return False
46
+ except requests.exceptions.RequestException:
47
+ print(f"Website {url} is inaccessible")
48
+ return False
49
+
50
+ if __name__=='__main__':
51
+ s = "Hello, world. Python is fun!"
52
+ split_string(s)
53
+
54
+ def split_string(s):
55
+ import re
56
+ # 使用正则表达式匹配空格、逗号或句点
57
+ return re.split(r'[ ,.]', s)
58
+
59
+ if __name__=='__main__':
60
+ s = "Hello, world. Python is fun!"
61
+ filter_string(s)
62
+
63
+ def filter_string(s):
64
+ #排除证券名称中的多余空格、逗号和句号
65
+ slist=split_string(s)
66
+ s1=''
67
+ for sl in slist:
68
+ if sl != '':
69
+ if s1=='':
70
+ s1=sl
71
+ else:
72
+ s1=s1+' '+sl
73
+
74
+ return s1
75
+ #==============================================================================
76
+ if __name__=='__main__':
77
+ ticker='1155.KL'
78
+ ticker='MSFT'
79
+ ticker='G13.SI'
80
+ ticker='S63.SI'
81
+ ticker='SUS.ST'
82
+ ticker='600519.SS'
83
+ ticker='U11.SI'
84
+ ticker='1295.KL'
85
+ ticker='BMW.DE'
86
+ ticker='MBG.DE'
87
+ ticker='005930.KS'
88
+ ticker='LI'
89
+ ticker='600599.SS'
90
+ ticker='600123.SS'
91
+ ticker='600123.ss'
92
+ ticker='600999.ss'
93
+ ticker='600111.ss'
94
+ ticker='600333.ss'
95
+ ticker='600444.ss'
96
+ ticker='600777.ss'
97
+
98
+ yahoo_name1(ticker)
99
+
100
+ #极端测试
101
+ inamelist=[]
102
+ for i in range(100,150+1):
103
+ icode=str(600000+i)+'.SS'
104
+ iname=yahoo_name1(icode)
105
+ print(icode+':',iname)
106
+ inamelist=inamelist+[iname]
107
+
108
+ #发现问题后单独测试
109
+ ticker='600087.SS'
110
+ yahoo_name1(ticker)
111
+
112
+ yahoo_name1(ticker,short_name=True)
113
+
114
+ ticker_name(ticker)
115
+
116
+ def yahoo_name1(ticker,short_name=False,add_suffix=True,maxlen=80):
117
+ """
118
+ 功能:从雅虎财经取得全球证券名称,仅限英文。需要去掉常用词,如Corporation
119
+ 优点:对未定义的证券代码也可给出英文名称,即使在中文语言环境中
120
+ 现存问题:需要访问雅虎,且耗时稍长
121
+ """
122
+ #测试雅虎
123
+ if not test_yahoo_access():
124
+ return ticker
125
+
126
+ #需要去掉的单词,注意顺序不要轻易颠倒!子串包含的,要长文在前!
127
+ remove_list=['Corporation','Berhad','Bhd','PLC','plc','Plc', \
128
+ ', Inc.','Inc.', \
129
+ 'AG ST','AG','NA O.N.', \
130
+ 'Aktiengesellschaft','(publ)', \
131
+ ', LLC','LLC', \
132
+ 'Co., Ltd.','Co., Ltd','Co.,Ltd.','Co.,Ltd','Co,.Ltd','co.,ltd', \
133
+ 'Co. LTD','CO.,LTD','Co., Limited', \
134
+ 'Ltd.','Ltd', \
135
+ 'Company', \
136
+ 'Incorporated', \
137
+ 'Corp., Ltd.','Corp.','Corp','AB', \
138
+ 'Limited', \
139
+
140
+ #强行缩短名称长度,去掉不影响名称的花哨词语
141
+ '(Group)','Group', \
142
+ 'Science & Technology','High-Tech','High Technology', \
143
+
144
+ #扫尾漏网之逗号句点
145
+ '.',',']
146
+
147
+ """
148
+ remove_list=['Corporation','Berhad','Bhd','PLC','plc','Limited', \
149
+ 'Inc', \
150
+ 'AG ST','AG','NA O.N.', \
151
+ 'Aktiengesellschaft','(publ)', \
152
+ 'LLC', \
153
+ 'Co., Ltd.','Ltd.','Ltd', \
154
+ 'Company', \
155
+ 'Incorporated','Corp.','AB']
156
+ """
157
+ #去掉ticker中的.US后缀
158
+ ticker=ticker.upper()
159
+ ticker1=ticker.replace('.US', "")
160
+
161
+ import yfinance as yf
162
+ ticker_info = yf.Ticker(ticker1)
163
+
164
+ try:
165
+ t_info=ticker_info.info
166
+ except:
167
+ pass
168
+ return ticker
169
+
170
+ try:
171
+ if short_name:
172
+ t_name0=t_info['shortName']
173
+ else:
174
+ t_name0=t_info['longName']
175
+ if len(t_name0) > maxlen:
176
+ t_name0=t_info['shortName']
177
+ except:
178
+ pass
179
+ return ticker #未找到ticker
180
+
181
+ #过滤逗号句点?过滤也可能带来更多复杂性!
182
+ #t_name1=filter_string(t_name0)
183
+ t_name1=t_name0
184
+
185
+ for r in remove_list:
186
+ t_name1=t_name1.replace(r, "")
187
+
188
+ #排除前后空格
189
+ t_name=t_name1.strip()
190
+
191
+ #增加交易所后缀
192
+ if add_suffix:
193
+ tlist=ticker.split('.')
194
+ if len(tlist)==2:
195
+ sid=tlist[1]
196
+ if sid not in ['SS','SZ','BJ']:
197
+ t_name=t_name+'('+sid+')'
198
+
199
+ return t_name
200
+
201
+ #==============================================================================
202
+ if __name__=='__main__':
203
+ ticker='1155.KL'
204
+ ticker='MSFT'
205
+ ticker='G13.SI'
206
+ ticker='S63.SI'
207
+ ticker='SUS.ST'
208
+ ticker='600519.SS'
209
+ ticker='U11.SI'
210
+ ticker='1295.KL'
211
+ ticker='BMW.DE'
212
+ ticker='MBG.DE'
213
+ ticker='005930.KS'
214
+ ticker='LI'
215
+ ticker='600599.SS'
216
+ ticker='600123.SS'
217
+ ticker='600123.ss'
218
+ ticker='600999.ss'
219
+ ticker='600111.ss'
220
+ ticker='600333.ss'
221
+ ticker='600444.ss'
222
+ ticker='600777.ss'
223
+
224
+ yahoo_name2(ticker)
225
+
226
+ #极端测试
227
+ inamelist=[]
228
+ for i in range(0,50+1):
229
+ icode=str(600000+i)+'.SS'
230
+ iname=yahoo_name2(icode)
231
+ print(icode+':',iname)
232
+ inamelist=inamelist+[iname]
233
+
234
+ #发现问题后单独测试
235
+ ticker='600088.SS'
236
+ yahoo_name1(ticker)
237
+ yahoo_name2(ticker)
238
+
239
+ yahoo_name2(ticker,short_name=True)
240
+
241
+ ticker_name(ticker)
242
+
243
+ def yahoo_name2(ticker,short_name=False,add_suffix=True,maxlen=80):
244
+ """
245
+ 功能:从雅虎财经取得全球证券名称,仅限英文。需要去掉常用词,如Corporation
246
+ 优点:对未定义的证券代码也可给出英文名称,即使在中文语言环境中
247
+ 现存问题:需要访问雅虎,且耗时稍长
248
+ """
249
+ #定义需要去掉的单词,注意顺序不要轻易颠倒!子串包含的,要长文在前!前置留空格的为避免误删
250
+ remove_list=[' CORPORATION',' BERHAD',' BHD',' PLC',' INC',' AG ST',' NA O N', \
251
+ ' AKTIENGESELLSCHAFT','(PUBL)',' LLC', \
252
+ ' CO LTD',' CO LIMITED',' LTD',' LIMITED',' COMPANY',' INCORPORATED', \
253
+ ' CORP LTD',' CORP',' AB', \
254
+ '(GROUP)',' GROUP', \
255
+
256
+ ' SCIENCE & TECHNOLOGY',' HIGH-TECH',' HIGH TECHNOLOGY']
257
+
258
+
259
+ #测试雅虎
260
+ if not test_yahoo_access():
261
+ return ticker
262
+
263
+ #去掉ticker中的.US后缀
264
+ ticker=ticker.upper()
265
+ ticker1=ticker.replace('.US', "")
266
+
267
+ import yfinance as yf
268
+ ticker_info = yf.Ticker(ticker1)
269
+
270
+ try:
271
+ t_info=ticker_info.info
272
+ except:
273
+ pass
274
+ return ticker
275
+
276
+ try:
277
+ if short_name:
278
+ t_name0=t_info['shortName']
279
+ else:
280
+ t_name0=t_info['longName']
281
+ if len(t_name0) > maxlen:
282
+ t_name0=t_info['shortName']
283
+ except:
284
+ pass
285
+ return ticker #未找到ticker
286
+
287
+ #去掉逗号和句点
288
+ name1=t_name0.replace(',',' ')
289
+ name2=name1.replace('.',' ')
290
+
291
+ #将字符串中的多个空格变为单个空格
292
+ name3=replace_multiple_spaces(name2)
293
+
294
+ #将字符串字母全部大写
295
+ name4=name3.upper()
296
+
297
+ name5=name4
298
+ for ss in remove_list:
299
+ name5=name5.replace(ss,'')
300
+
301
+ name6=name5.strip()
302
+
303
+ name7=t_name0[:len(name6)]
304
+
305
+ #增加交易所后缀
306
+ t_name=name7
307
+ if add_suffix:
308
+ tlist=ticker.split('.')
309
+ if len(tlist)==2:
310
+ sid=tlist[1]
311
+ if sid not in ['SS','SZ','BJ']:
312
+ t_name=t_name+'('+sid+')'
313
+
314
+ return t_name
315
+ #==============================================================================
316
+ #==============================================================================
317
+ #==============================================================================
318
+ #==============================================================================
319
+ #==============================================================================
320
+ #==============================================================================
321
+ #==============================================================================
322
+ #==============================================================================
323
+ #==============================================================================
324
+ #==============================================================================
325
+ #==============================================================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siat
3
- Version: 3.2.58
3
+ Version: 3.2.59
4
4
  Summary: Securities Investment Analysis Tools (siat)
5
5
  Home-page: https://pypi.org/project/siat/
6
6
  Author: Prof. WANG Dehong, International Business School, Beijing Foreign Studies University
@@ -18,7 +18,7 @@ siat/capm_beta.py,sha256=cxXdRVBQBllhbfz1LeTJAIWvyRYhW54nhtNUXv4HwS0,29063
18
18
  siat/capm_beta2.py,sha256=d7lZ-VXVVmBkMVGDPlozL-9gAU3cYpHG23X1WSRCOgY,26907
19
19
  siat/capm_beta_test.py,sha256=ImR0c5mc4hIl714XmHztdl7qg8v1E2lycKyiqnFj6qs,1745
20
20
  siat/cmat_commons.py,sha256=Nj9Kf0alywaztVoMVeVVL_EZk5jRERJy8R8kBw88_Tg,38116
21
- siat/common.py,sha256=voALy4D-hTj7VOmibBH-1P0QUJf6PU-aS7hjjbFP7Zo,151717
21
+ siat/common.py,sha256=VU4AhQZGQmTCcw-lbiuG7jSz7Dsy1psOi9ayaAbBDdY,151635
22
22
  siat/compare_cross.py,sha256=3iP9TH2h3w27F2ARZc7FjKcErYCzWRc-TPiymOyoVtw,24171
23
23
  siat/compare_cross_test.py,sha256=xra5XYmQGEtfIZL2h-GssdH2hLdFIhG3eoCrkDrL3gY,3473
24
24
  siat/concepts_iwencai.py,sha256=m1YEDtECRT6FqtzlKm91pt2I9d3Z_XoP59BtWdRdu8I,3061
@@ -69,7 +69,7 @@ siat/luchy_draw.py,sha256=8Ue-NKnvSVqINPY1eXat0NJat5MR-gex_K62aOYFdmA,20486
69
69
  siat/market_china.py,sha256=EOO-RvdnzJThTrgNHWW3TlWhx4k4rfdjbooOnQsYdQU,50299
70
70
  siat/markowitz.py,sha256=glHikhabFAF6Hb6df1pYfhkxid2IZXBYAVQng5wd9Wk,97526
71
71
  siat/markowitz2-20240620.py,sha256=irZAPnjaatFsKQmFRMENP-cO6bEUl2narYtkU5NKTWI,108019
72
- siat/markowitz2.py,sha256=rrnUbHG2ErJRWBeaq297Mr5qjF_-gRjCZqwKSl6pr2E,113902
72
+ siat/markowitz2.py,sha256=oStv4V74OiqBk-rnBPo6QJTUSNe1FCyT1Yl6-Fx_mHc,113934
73
73
  siat/markowitz_ccb_test.py,sha256=xBkkoaNHdq9KSUrNuHGgKTdNYUvgi84kNYcf719eoyE,1593
74
74
  siat/markowitz_ef_test.py,sha256=wjNlICkgRIqnonPeSIHo4Mu2GRtb9dr21wDt2kMNEcI,4032
75
75
  siat/markowitz_old.py,sha256=Lf7O_4QWT8RsdkHiUyc_7kKY3eZjKDtFR89Fz3pwYnY,33046
@@ -131,14 +131,15 @@ siat/transaction_test.py,sha256=Z8g1LJCN4-mnUByXMUMoFmN0t105cbmsz2QmvSuIkbU,1858
131
131
  siat/translate-20230125.py,sha256=NPPSXhT38s5t9fzMvl_fvi4ckSB73ThLmZetVI-xGdU,117953
132
132
  siat/translate-20230206.py,sha256=-vtI125WyaJhmPotOpDAmclt_XnYVaWU9ByLWZ6FyYE,118133
133
133
  siat/translate-20230215.py,sha256=TJgtPE3n8IjljmZ4Pefy8dmHoNdFF-1zpML6BhA9FKE,121657
134
- siat/translate.py,sha256=6C3oWihKQPd0Lfv-lIMiGdMIYKJ7n6N88jiWnp6cWb8,217029
134
+ siat/translate.py,sha256=v4__NZBhC7cVevl_lKxwhcKQa_UFuyVK1pdB6_KEflI,217855
135
135
  siat/translate_20240606.py,sha256=63IyHWEU3Uz9mjwyuAX3fqY4nUMdwh0ICQAgmgPXP7Y,215121
136
136
  siat/universal_test.py,sha256=CDAOffW1Rvs-TcNN5giWVvHMlch1w4dp-w5SIV9jXL0,3936
137
137
  siat/valuation.py,sha256=NKfeZMdDJOW42oLVHob6eSVBXUqlN1OCnnzwyGAst8c,48855
138
138
  siat/valuation_china.py,sha256=EkZQaVkoBjM0c4MCNbaX-bMnlG0e3FXeaWczZDnkptU,67784
139
139
  siat/valuation_market_china_test.py,sha256=gbJ0ioauuo4koTPH6WKUkqcXiQPafnbhU5eKJ6lpdLA,1571
140
140
  siat/var_model_validation.py,sha256=R0caWnuZarrRg9939hxh3vJIIpIyPfvelYmzFNZtPbo,14910
141
- siat-3.2.58.dist-info/METADATA,sha256=n-vzBXNpfzQFJw505Um6b29cG9J_IDzpjycmx4Nl01A,7310
142
- siat-3.2.58.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
143
- siat-3.2.58.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
144
- siat-3.2.58.dist-info/RECORD,,
141
+ siat/yf_name.py,sha256=CI3xZJSMGbDCKhmpL8_6DdebH6EDnVUaSfdTSf-FnA8,10199
142
+ siat-3.2.59.dist-info/METADATA,sha256=suq3jI9DoMGKMeRXn-DbMpSlZhVwWtopNKsfiBjgOjw,7310
143
+ siat-3.2.59.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
144
+ siat-3.2.59.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
145
+ siat-3.2.59.dist-info/RECORD,,
File without changes