siat 2.10.6__py3-none-any.whl → 2.10.12__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/__init__.py CHANGED
@@ -16,13 +16,14 @@ from siat.allin import *
16
16
  from IPython.core.interactiveshell import InteractiveShell
17
17
  InteractiveShell.ast_node_interactivity='all'
18
18
  #==============================================================================
19
+ # 检查是否存在新版本
19
20
  import pkg_resources
20
21
  current_version=pkg_resources.get_distribution("siat").version
21
22
  import luddite
22
23
  latest_version=luddite.get_version_pypi("siat")
23
24
 
24
25
  if latest_version != current_version:
25
- print("\nWelcome to Security Investment Analysis Toolkit (siat)")
26
+ print("Welcome to Security Investment Analysis Toolkit (siat)")
26
27
  print("The siat version in your computer is",current_version,"\b, latest version is",latest_version,'\n')
27
28
  print("*** If you expect to upgrade siat, use the instruction below in a command window:")
28
29
  print(" pip install siat --upgrade")
siat/common.py CHANGED
@@ -2218,4 +2218,47 @@ def change_recommend_stars(stars_current,change='+'):
2218
2218
 
2219
2219
 
2220
2220
  #==============================================================================
2221
+ if __name__=='__main__':
2222
+ symbol='---'
2223
+ exclude_collist=['c1']
2224
+
2225
+ import pandas as pd
2226
+ df=pd.DataFrame({'c1':[10,11,12],'c2':['---',110,'---'],'c3':['---',1100,'---']})
2227
+ df_filter_row(df,exclude_collist=['c1'],symbol='---')
2228
+
2229
+ def df_filter_row(df,exclude_collist=[],symbol=''):
2230
+ """
2231
+ 功能:删除df中的全部行,如果该行除去exclude_collist外其全部列的1值均为symbol
2232
+ """
2233
+ # 若为空直接返回
2234
+ if len(df)==0:
2235
+ return df
2236
+
2237
+ # 找出需要判断的列列表
2238
+ collist=list(df)
2239
+ for e in exclude_collist:
2240
+ collist.remove(e)
2241
+
2242
+ # 逐行打是否为symbol标记
2243
+ df2=df.copy()
2244
+ df2['EmptyRow']=True # 假定所有行都符合条件
2245
+ for index,row in df2.iterrows():
2246
+ for c in collist:
2247
+ #if row[c] not in [symbol,' ',0]:
2248
+ if row[c] not in [symbol]:
2249
+ df2.loc[index,'EmptyRow']=False
2250
+
2251
+ # 删除符合条件的行
2252
+ df3=df2[df2['EmptyRow']==False]
2253
+ df3.drop('EmptyRow',axis=1,inplace=True)
2254
+
2255
+ return df3
2256
+
2257
+
2258
+
2259
+ #==============================================================================
2260
+ #==============================================================================
2261
+ #==============================================================================
2262
+ #==============================================================================
2263
+ #==============================================================================
2221
2264
 
siat/financials2.py CHANGED
@@ -133,7 +133,7 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
133
133
  if isinstance(tickers,list): tickers=tickers[0]
134
134
  else:
135
135
  print(" #Warning(fs_analysis_china): must be one ticker or first ticker in a list for",tickers)
136
- return
136
+ return None
137
137
 
138
138
  # 检查category
139
139
  category_list=['profile','officers','market_rates','dividend','stock_split','fin_rates','risk_general','risk_esg']
@@ -150,7 +150,7 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
150
150
  else:
151
151
  info=get_stock_profile(ticker,info_type=category)
152
152
 
153
- return
153
+ return info
154
154
 
155
155
  elif ('balance' in analysis_type1) or ('sheet' in analysis_type1) \
156
156
  or ('asset' in analysis_type1) or ('liability' in analysis_type1):
@@ -159,7 +159,7 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
159
159
  if isinstance(tickers,list): tickers=tickers[0]
160
160
  else:
161
161
  print(" #Warning(fs_analysis_china): must be one ticker or first ticker in a list for",tickers)
162
- return
162
+ return None
163
163
 
164
164
  # 分析资产负债表
165
165
  fsdf=get_balance_sheet(symbol=tickers)
@@ -230,15 +230,19 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
230
230
  collist=list(fsdf4)
231
231
  fsdf4['Item']=fsdf4.index
232
232
  fsdf5=fsdf4[['Item']+collist]
233
+ fsdf6=df_filter_row(fsdf5,exclude_collist=['Item'],symbol='---')
233
234
 
234
235
  alignlist=['left']+['right']*(len(list(fsdf5))-1)
235
- print(fsdf5.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
236
+ print(fsdf6.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
236
237
 
237
- footnote1="*** Unit: "+currency+" billion for amount items, exchange's local accounting standards"
238
+ footnote1="*** Amount unit: "+currency+" billion, exchange's local accounting standards"
238
239
  footnote2="*** Data source: Yahoo Finance, "+todaydt
239
240
  print('\n',footnote1,'\n',footnote2)
241
+
242
+ return fsdf6
240
243
 
241
- return
244
+ else:
245
+ return fsdf2
242
246
 
243
247
  elif ('income' in analysis_type1) or ('cost' in analysis_type1) \
244
248
  or ('expense' in analysis_type1) or ('earning' in analysis_type1):
@@ -247,7 +251,7 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
247
251
  if isinstance(tickers,list): tickers=tickers[0]
248
252
  else:
249
253
  print(" #Warning(fs_analysis_china): must be one ticker or first ticker in a list for",tickers)
250
- return
254
+ return None
251
255
 
252
256
  # 分析利润表
253
257
  fsdf=get_income_statements(symbol=tickers)
@@ -297,16 +301,19 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
297
301
 
298
302
  collist=list(fsdf4)
299
303
  fsdf4['Item']=fsdf4.index
300
- fsdf5=fsdf4[['Item']+collist]
304
+ fsdf5=fsdf4[['Item']+collist]
305
+ fsdf6=df_filter_row(fsdf5,exclude_collist=['Item'],symbol='---')
301
306
 
302
307
  alignlist=['left']+['right']*(len(list(fsdf5))-1)
303
- print(fsdf5.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
308
+ print(fsdf6.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
304
309
 
305
- footnote1="*** Unit: "+currency+" billion for amount items, exchange's local accounting standards"
310
+ footnote1="*** Amount unit: "+currency+" billion, exchange's local accounting standards"
306
311
  footnote2="*** Data source: Yahoo Finance, "+todaydt
307
312
  print('\n',footnote1,'\n',footnote2)
313
+
314
+ return fsdf6
308
315
 
309
- return
316
+ return fsdf2
310
317
 
311
318
  elif ('cash' in analysis_type1) or ('flow' in analysis_type1):
312
319
  # 股票需为单只股票,若为列表则仅取第一个
@@ -314,7 +321,7 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
314
321
  if isinstance(tickers,list): tickers=tickers[0]
315
322
  else:
316
323
  print(" #Warning(fs_analysis_china): must be one ticker or first ticker in a list for",tickers)
317
- return
324
+ return None
318
325
 
319
326
  # 分析现金流量表
320
327
  fsdf=get_cashflow_statements(symbol=tickers)
@@ -364,16 +371,19 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
364
371
 
365
372
  collist=list(fsdf4)
366
373
  fsdf4['Item']=fsdf4.index
367
- fsdf5=fsdf4[['Item']+collist]
374
+ fsdf5=fsdf4[['Item']+collist]
375
+ fsdf6=df_filter_row(fsdf5,exclude_collist=['Item'],symbol='---')
368
376
 
369
377
  alignlist=['left']+['right']*(len(list(fsdf5))-1)
370
- print(fsdf5.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
378
+ print(fsdf6.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
371
379
 
372
- footnote1="*** Unit: "+currency+" billion for amount items, exchange's local accounting standards"
380
+ footnote1="*** Amount unit: "+currency+" billion, exchange's local accounting standards"
373
381
  footnote2="*** Data source: Yahoo Finance, "+todaydt
374
382
  print('\n',footnote1,'\n',footnote2)
375
383
 
376
- return
384
+ return fsdf6
385
+
386
+ return fsdf2
377
387
 
378
388
  elif ('summary' in analysis_type1):
379
389
 
@@ -463,15 +473,18 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
463
473
  collist=list(fsdf4)
464
474
  fsdf4['Item']=fsdf4.index
465
475
  fsdf5=fsdf4[['Item']+collist]
476
+ fsdf6=df_filter_row(fsdf5,exclude_collist=['Item'],symbol='---')
466
477
 
467
478
  alignlist=['left']+['right']*(len(list(fsdf5))-1)
468
- print(fsdf5.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
479
+ print(fsdf6.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
469
480
 
470
- footnote1="*** Unit: "+currency+" billion for amount items, exchange's local accounting standards"
481
+ footnote1="*** Amount unit: "+currency+" billion, exchange's local accounting standards"
471
482
  footnote2="*** Data source: Yahoo Finance, "+todaydt
472
483
  print('\n',footnote1,'\n',footnote2)
484
+
485
+ return fsdf6
473
486
 
474
- return
487
+ return fsdf2
475
488
 
476
489
  # 股票可为股票列表(多只股票对比)
477
490
  if isinstance(tickers,list):
@@ -539,15 +552,18 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
539
552
  collist=list(fsdf4)
540
553
  fsdf4['Item']=fsdf4.index
541
554
  fsdf5=fsdf4[['Item']+collist]
555
+ fsdf6=df_filter_row(fsdf5,exclude_collist=['Item'],symbol='---')
542
556
 
543
557
  alignlist=['left']+['right']*(len(list(fsdf5))-1)
544
- print(fsdf5.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
558
+ print(fsdf6.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
545
559
 
546
- footnote1="*** Unit: "+currency+" billion for amount items, exchange's local accounting standards"
560
+ footnote1="*** Amount unit: "+currency+" billion, exchange's local accounting standards"
547
561
  footnote2="*** Data source: Yahoo Finance, "+todaydt
548
562
  print('\n',footnote1,'\n',footnote2)
563
+
564
+ return fsdf6
549
565
 
550
- return
566
+ return fsdf2
551
567
 
552
568
  elif ('indicator' in analysis_type1):
553
569
 
@@ -635,15 +651,18 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
635
651
  collist=list(fsdf4)
636
652
  fsdf4['Item']=fsdf4.index
637
653
  fsdf5=fsdf4[['Item']+collist]
654
+ fsdf6=df_filter_row(fsdf5,exclude_collist=['Item'],symbol='---')
638
655
 
639
656
  alignlist=['left']+['right']*(len(list(fsdf5))-1)
640
- print(fsdf5.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
657
+ print(fsdf6.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
641
658
 
642
- footnote1="*** Unit: "+currency+" billion for amount items, exchange's local accounting standards"
659
+ footnote1="*** Amount unit: "+currency+" billion, exchange's local accounting standards"
643
660
  footnote2="*** Data source: Yahoo Finance, "+todaydt
644
661
  print('\n',footnote1,'\n',footnote2)
662
+
663
+ return fsdf6
645
664
 
646
- return
665
+ return fsdf2
647
666
 
648
667
  # 股票可为股票列表(多只股票对比)
649
668
  if isinstance(tickers,list):
@@ -708,22 +727,25 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
708
727
  collist=list(fsdf4)
709
728
  fsdf4['Item']=fsdf4.index
710
729
  fsdf5=fsdf4[['Item']+collist]
730
+ fsdf6=df_filter_row(fsdf5,exclude_collist=['Item'],symbol='---')
711
731
 
712
732
  alignlist=['left']+['right']*(len(list(fsdf5))-1)
713
- print(fsdf5.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
733
+ print(fsdf6.to_markdown(tablefmt='plain',index=False,colalign=alignlist))
714
734
 
715
- footnote1="*** Unit: "+currency+" billion for amount items, exchange's local accounting standards"
735
+ footnote1="*** Amount unit: "+currency+" billion, exchange's local accounting standards"
716
736
  footnote2="*** Data source: Yahoo Finance, "+todaydt
717
- print('\n',footnote1,'\n',footnote2)
737
+ print('\n',footnote1,'\n',footnote2)
738
+
739
+ return fsdf6
718
740
 
719
- return
741
+ return fsdf2
720
742
 
721
743
 
722
744
  elif ('dupont' in analysis_type1) and (('identity' in analysis_type1) or ('analysis' in analysis_type1)):
723
745
  # 股票需为股票列表
724
746
  if not isinstance(tickers,list):
725
747
  print(" #Warning(fs_analysis_china): must be a ticker list for",tickers)
726
- return
748
+ return None
727
749
 
728
750
  business_period=business_period.lower()
729
751
  fsdf=pd.DataFrame()
@@ -816,11 +838,11 @@ def fs_analysis(tickers,fsdates=[],analysis_type='balance sheet', \
816
838
  footnote2="Data source: Yahoo Finance, "+todaydt
817
839
  print('\n',footnote1,'\b.',footnote2)
818
840
 
819
- return
841
+ return df2
820
842
 
821
843
  else: # analysis_type1
822
844
  print(" #Warning(fs_analysis): sorry, no idea on what to do for",analysis_type)
823
- return
845
+ return None
824
846
 
825
847
 
826
848
  #==============================================================================
siat/financials_china.py CHANGED
@@ -3704,34 +3704,44 @@ def get_fin_indicator_1ticker_china(ticker,fsdates):
3704
3704
  for index,row in dft5.iterrows():
3705
3705
  # 改变顺序要谨慎
3706
3706
  if ('每股' in row['指标']) and (row['选项'] == ''):
3707
- row['选项']='每股指标'
3707
+ #row['选项']='每股指标'
3708
+ dft5.loc[index,'选项']='每股指标'
3708
3709
 
3709
3710
  if ('周转' in row['指标']) and (row['选项'] == ''):
3710
- row['选项']='营运能力'
3711
+ #row['选项']='营运能力'
3712
+ dft5.loc[index,'选项']='营运能力'
3711
3713
 
3712
3714
  if ('应收' in row['指标']) and (row['选项'] == ''):
3713
- row['选项']='应收账款'
3715
+ #row['选项']='应收账款'
3716
+ dft5.loc[index,'选项']='应收账款'
3714
3717
 
3715
3718
  if ('预付' in row['指标']) and (row['选项'] == ''):
3716
- row['选项']='预付账款'
3719
+ #row['选项']='预付账款'
3720
+ dft5.loc[index,'选项']='预付账款'
3717
3721
 
3718
3722
  if str_contain_any_substr(row['指标'],debtstrlist) and (row['选项'] == ''):
3719
- row['选项']='偿债能力'
3723
+ #row['选项']='偿债能力'
3724
+ dft5.loc[index,'选项']='偿债能力'
3720
3725
 
3721
3726
  if ('现金' in row['指标']) and (row['选项'] == ''):
3722
- row['选项']='现金指标'
3727
+ #row['选项']='现金指标'
3728
+ dft5.loc[index,'选项']='现金指标'
3723
3729
 
3724
3730
  if ('亿元' in row['指标']) and (row['选项'] == ''):
3725
- row['选项']='规模指标'
3726
-
3731
+ #row['选项']='规模指标'
3732
+ dft5.loc[index,'选项']='规模指标'
3733
+ """
3727
3734
  if ('亿元' in row['指标']) and (row['选项'] == ''):
3728
- row['选项']='规模指标'
3729
-
3735
+ #row['选项']='规模指标'
3736
+ dft5.loc[index,'选项']='规模指标'
3737
+ """
3730
3738
  if str_contain_any_substr(row['指标'],retstrlist) and (row['选项'] == ''):
3731
- row['选项']='利润回报'
3739
+ #row['选项']='利润回报'
3740
+ dft5.loc[index,'选项']='利润回报'
3732
3741
 
3733
3742
  if (row['选项'] == ''):
3734
- row['选项']='其他指标'
3743
+ #row['选项']='其他指标'
3744
+ dft5.loc[index,'选项']='其他指标'
3735
3745
 
3736
3746
  return dft5
3737
3747
 
@@ -3784,6 +3794,14 @@ if __name__=='__main__':
3784
3794
  tickers=['000002.SZ','600048.SS','001979.SZ','600325.SS','000069.SZ','600383.SS','600895.SS','601155.SS']
3785
3795
  fidf=compare_fin_indicator_china(tickers,fsdates)
3786
3796
 
3797
+ tickers='601615.SS'
3798
+ fsdates=['2022-12-31',
3799
+ '2021-12-31',
3800
+ '2020-12-31',
3801
+ '2019-12-31',
3802
+ '2018-12-31',
3803
+ ]
3804
+
3787
3805
  def compare_fin_indicator_china(tickers,fsdates):
3788
3806
  """
3789
3807
  功能:分类别显示财报摘要中的指标
@@ -3994,6 +4012,13 @@ def compare_fin_indicator_china(tickers,fsdates):
3994
4012
  '3. 固定资产净值率=(固定资产原值-累计折旧)/固定资产原值*100%,反映企业全部固定资产平均新旧程度 \n'+ \
3995
4013
  '4. 资本固定化比率=非流动资产/净资产*100%,若超过100%,说明固定资产资金投入超过自身能力,易造成财务状况恶化。 \n',
3996
4014
  }
4015
+
4016
+ # 标记选项类型
4017
+ typedict_keys=list(typedict.keys())
4018
+ for index,row in fsdf.iterrows():
4019
+ for k in typedict_keys:
4020
+ if row['指标'] in typedict[k]:
4021
+ fsdf.loc[index,'选项']=k
3997
4022
 
3998
4023
  # 一只股票情形:多日期
3999
4024
  if len(tickers_found) == 1:
@@ -4004,6 +4029,7 @@ def compare_fin_indicator_china(tickers,fsdates):
4004
4029
  fsdf1=fsdf[fsdf['ticker']==ticker1]
4005
4030
  for ty in typelist:
4006
4031
  dft=fsdf1[fsdf1['选项']==ty]
4032
+ #dft=fsdf1[fsdf1['选项'].apply(lambda x: x in typedict[ty])]
4007
4033
  #print(list(dft['指标']))
4008
4034
 
4009
4035
  # 自定义排序
@@ -4027,6 +4053,11 @@ def compare_fin_indicator_china(tickers,fsdates):
4027
4053
  print("\n***",ty+':')
4028
4054
  colalign=['center','left']+['right']*(len(list(dft3)) - 1)
4029
4055
  print(dft3.to_markdown(tablefmt='Simple',index=True,colalign=colalign))
4056
+ """
4057
+ 注意:若dft3为空,则会出现错误:list assignment index out of range
4058
+ 无论如何修改colalign都没用
4059
+ """
4060
+
4030
4061
  print(notesdict[ty])
4031
4062
 
4032
4063
  return dft3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siat
3
- Version: 2.10.6
3
+ Version: 2.10.12
4
4
  Summary: Securities Investment Analysis Tools (siat)
5
5
  Home-page: https://pypi.org/project/siat/
6
6
  Author: Prof. WANG Dehong, Business School, BFSU
@@ -1,4 +1,4 @@
1
- siat/__init__.py,sha256=Sz34mWF-AFyH1KAA4-N_n5xqNW5IOWX79mRg8yWauys,2083
1
+ siat/__init__.py,sha256=WcOl_oq7p3eXhWXoRc82MO-QS5DVjXn8J-c5TFrPdrc,2112
2
2
  siat/allin.py,sha256=Myw0PYPpD-MPkinxj532RTJBZhqvp1KsvJS8s5EeO30,2390
3
3
  siat/alpha_vantage_test.py,sha256=tKr-vmuFH3CZAqwmISz6jzjPHzV1JJl3sPfZdz8aTfM,747
4
4
  siat/assets_liquidity.py,sha256=WEdxeENumZZZ7sFmwjDeX9rClHXGGHbnlrL2NMkgqnw,28808
@@ -15,7 +15,7 @@ siat/bond_test.py,sha256=yUOFw7ddGU-kb1rJdnsjkJWziDNgUR7OLDA7F7Ub91A,5246
15
15
  siat/capm_beta.py,sha256=cqbmfM4mrq73Ub0bq5QjWJjmJHj9x7-dSqbmNxnEj7k,28946
16
16
  siat/capm_beta_test.py,sha256=ImR0c5mc4hIl714XmHztdl7qg8v1E2lycKyiqnFj6qs,1745
17
17
  siat/cmat_commons.py,sha256=Nj9Kf0alywaztVoMVeVVL_EZk5jRERJy8R8kBw88_Tg,38116
18
- siat/common.py,sha256=YQAU7SmLzoUQv32z65DxrmAEFcnH82K-Usk5yiscA9w,77538
18
+ siat/common.py,sha256=K5v9ULK35reQTH9V77_ac9oNBkYKX3bWbMRciJiRPmI,79072
19
19
  siat/compare_cross.py,sha256=-MZzxmX8_9oFZ7X0IcR51w87EWwssbitiw-BcmHMFzQ,26228
20
20
  siat/compare_cross_test.py,sha256=xra5XYmQGEtfIZL2h-GssdH2hLdFIhG3eoCrkDrL3gY,3473
21
21
  siat/concepts_iwencai.py,sha256=m1YEDtECRT6FqtzlKm91pt2I9d3Z_XoP59BtWdRdu8I,3061
@@ -37,8 +37,8 @@ siat/financial_statements.py,sha256=UbV6ju4jrYaFOvhUgcEuclBBo9gkmqDngdr_92nsFX0,
37
37
  siat/financial_statements_test.py,sha256=FLhx8JD-tVVWSBGux6AMz1jioXX4U4bp9DmgFHYXb_w,716
38
38
  siat/financials.py,sha256=6gSwc2VzJy_cAbK2imXEl3Kldw3mmT2Gm54JbK7x35I,78743
39
39
  siat/financials2 - 副本.py,sha256=dKlNjIfKeoSy055fQ6E6TUj9HEoO5Ney9grD84J5kfk,14389
40
- siat/financials2.py,sha256=Ek80sKJOzVnxlfMbs2v3Cg_mpOXppkmALRpbiAnOCRA,35082
41
- siat/financials_china.py,sha256=6DUOXeJbmIkbV0xl56NvZApi-SEm50NEM1X0IyUrhI8,176521
40
+ siat/financials2.py,sha256=sEfa_JTwIp0SsJLtOsTTxiJZXwArfr9hYlaIsBRxc8E,35965
41
+ siat/financials_china.py,sha256=nUSPS4SDLP1RaOZF6uIvel8pFl3X_aBO_I0Opl1O8RI,177685
42
42
  siat/financials_china2.py,sha256=EWDuSHQc6TMeU8mXV_LyLLI3URBU8WQYLEZ3obXyB6E,71864
43
43
  siat/financials_china2_test.py,sha256=Erz5k4LyOplBBvYls2MypuqHpVNJ3daiLdyeJezNPu0,2722
44
44
  siat/financials_china2_test2.py,sha256=C8CuYTMHN4Mhp-sTu-Bmg0zMXRCaYV6ezGDoYartRYQ,3507
@@ -123,7 +123,7 @@ siat/universal_test.py,sha256=CDAOffW1Rvs-TcNN5giWVvHMlch1w4dp-w5SIV9jXL0,3936
123
123
  siat/valuation_china.py,sha256=SPJFU9J8WJhz_HOXgIAjoG8dZs1zSPS1BZxkjhA-D1w,52241
124
124
  siat/valuation_market_china_test.py,sha256=gbJ0ioauuo4koTPH6WKUkqcXiQPafnbhU5eKJ6lpdLA,1571
125
125
  siat/var_model_validation.py,sha256=zB_Skk_tmzIR15l6oAW3am4HBGVIG-eZ8gJhCdXZ8Qw,14859
126
- siat-2.10.6.dist-info/METADATA,sha256=aNY8VPAGaWh8lTFjS67w-cMwa_zRAcPc41a0SneGrIg,1353
127
- siat-2.10.6.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
128
- siat-2.10.6.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
129
- siat-2.10.6.dist-info/RECORD,,
126
+ siat-2.10.12.dist-info/METADATA,sha256=xmg78Xpf6IGBh5nuupO7-HCebsFLEPPf82OjjipMu7U,1354
127
+ siat-2.10.12.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
128
+ siat-2.10.12.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
129
+ siat-2.10.12.dist-info/RECORD,,
File without changes