siat 2.0__py3-none-any.whl → 2.0.2__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/financials_china.py CHANGED
@@ -3410,8 +3410,8 @@ def compare_fin_summary_china(tickers,fsdates):
3410
3410
 
3411
3411
  '营运能力': \
3412
3412
  '\n注:\n'+ \
3413
- '1. 指标周转率/周转次数:营业(总)收入 / 指标的起初期末均值,从企业自身角度来说越大越好,但若涉及供应商则可能相反 \n'+ \
3414
- '2. 指标周转天数:360/周转率(或周转次数),从企业自身角度来说越小越好,但若涉及供应商则可能相反 \n'+ \
3413
+ '1. 指标周转率/周转次数:营业(总)收入 / 指标的起初期末均值。一般来说数值越大越好 \n'+ \
3414
+ '2. 指标周转天数:360/周转率(或周转次数)。一般来说数值越小越好 \n'+ \
3415
3415
  '3. 注意:本表指标主要针对非金融行业,部分指标不适用于金融行业。 \n', \
3416
3416
 
3417
3417
  '盈利能力':
@@ -3455,7 +3455,7 @@ def compare_fin_summary_china(tickers,fsdates):
3455
3455
  '2. 应收账款净额:指应收账款和其他应收款减去备抵坏账的净额,实质即为信誉高客户的应收款净额 \n'+ \
3456
3456
  '3. 产权比率(equity ratio)=负债总额 / 所有者权益总额(净资产) x100%,从一个方面说明企业长期偿债能力,越高越弱 \n'+ \
3457
3457
  '4. 说明:本表指标主要针对非金融普通企业,部分指标不完全适用于金融行业。 \n\n'+ \
3458
- '*** 注意:财报比率中有的使用期末数字计算,有的则采用期初期末均值,结果可能出现一定差异,但不影响同一指标的可比性。',
3458
+ '*** 注意:财报比率统计口径可能存在差异(例如采用期末/期初期末均值/期间加权等),但不影响同一指标的可比性。',
3459
3459
  }
3460
3460
 
3461
3461
  # 一只股票情形:多日期
siat/future_china.py CHANGED
@@ -19,7 +19,7 @@ from siat.common import *
19
19
  from siat.grafix import *
20
20
  #==========================================================================================
21
21
  if __name__=='__main__':
22
- trade_date='2023-1-18'
22
+ trade_date='2023-5-18'
23
23
 
24
24
  def future_type_china_0(trade_date):
25
25
  """
@@ -196,9 +196,9 @@ if __name__=='__main__':
196
196
 
197
197
  #======================================================================================
198
198
  if __name__=='__main__':
199
- code='SC2406'
200
- start='2023-1-1'
201
- end='2023-1-20'
199
+ code='PG'
200
+ start='2023-5-1'
201
+ end='2023-5-18'
202
202
  power=0
203
203
 
204
204
  def future_price_china(code,start,end,power=0):
@@ -212,9 +212,15 @@ def future_price_china(code,start,end,power=0):
212
212
  end1=convert_date_ts(end)
213
213
 
214
214
  #获得中国内盘期货品种代码
215
- varietydf=future_type_china_0(end1)
215
+ try:
216
+ varietydf=future_type_china_0(end1)
217
+ except:
218
+ print(" #Error(future_price_china): no info for the end date", end, "\b, try an earlier date")
219
+ return None
220
+
216
221
  #获得期货合约code的品种代码
217
222
  variety=get_future_symbol(code)
223
+ #variety=get_future_symbol(code).lower()
218
224
 
219
225
  try:
220
226
  vdf=varietydf[varietydf['代码']==variety]
@@ -243,9 +249,9 @@ def future_price_china(code,start,end,power=0):
243
249
  print(" Try earlier start date")
244
250
  return None
245
251
 
246
- p1=p[p['symbol']==code]
252
+ p1=p[p['symbol']==code.lower()]
247
253
  if len(p1)==0:
248
- print(" #Error(future_price_china): future contract",code,'not found in market',market)
254
+ print(" #Warning(future_price_china): future contract",code,'not found in market',market)
249
255
  contracts=set(list(p[p['variety']==variety]['symbol']))
250
256
  contracts1=sorted(contracts)
251
257
  print("\n提示:当前可用的"+varietyname+variety+'期货合约:'+mktnamefull+', '+str(end))
siat/grafix.py CHANGED
@@ -908,7 +908,7 @@ def plot_line2_twinx2(df01,ticker1,colname1,label1, \
908
908
 
909
909
  #==============================================================================
910
910
  def draw_lines(df0,y_label,x_label,axhline_value,axhline_label,title_txt, \
911
- data_label=True,resample_freq='H',smooth=True,linewidth=1.5):
911
+ data_label=True,resample_freq='H',smooth=True,linewidth=1.5,loc='best'):
912
912
  """
913
913
  函数功能:根据df的内容绘制折线图
914
914
  输入参数:
@@ -996,7 +996,7 @@ def draw_lines(df0,y_label,x_label,axhline_value,axhline_label,title_txt, \
996
996
  #图示标题
997
997
  plt.title(title_txt,fontweight='bold',fontsize=title_txt_size)
998
998
  plt.xticks(rotation=30)
999
- plt.legend(loc='best',fontsize=legend_txt_size)
999
+ plt.legend(loc=loc,fontsize=legend_txt_size)
1000
1000
  plt.show()
1001
1001
 
1002
1002
  return
siat/option_china.py CHANGED
@@ -1708,9 +1708,11 @@ if __name__=='__main__':
1708
1708
  #==============================================================================
1709
1709
  if __name__=='__main__':
1710
1710
  option='50ETF'
1711
- maturity='2209'
1711
+ option='300ETF'
1712
+ maturity='2306'
1712
1713
  exercise=3000
1713
- trade_date='2022-9-26'
1714
+ exercise=3500
1715
+ trade_date='2023-5-17'
1714
1716
  printout=True
1715
1717
 
1716
1718
  def fin_option_risk_sse2(option,maturity,exercise,trade_date, \
@@ -1801,11 +1803,14 @@ def fin_option_risk_sse2(option,maturity,exercise,trade_date, \
1801
1803
  print(" #Error(fin_option_risk_sse): options not available fulfilling",option,maturity,exercise)
1802
1804
  return None
1803
1805
 
1806
+ #去重
1807
+ df9a=df9.drop_duplicates(subset=['date','option','underlying','direction','maturity','exercise'],keep='first')
1808
+
1804
1809
  #绘制看涨看跌期权风险对比柱状图
1805
1810
  #排序,保证看涨期权排在前面
1806
- df9.sort_values(by='direction',ascending=True,inplace=True)
1807
- #df9b=df9[['delta','theta','gamma','vega','rho','implied volatility']]
1808
- df9b=df9[['Delta','Gamma','Theta','Vega','Rho']]
1811
+ df9a.sort_values(by='direction',ascending=True,inplace=True)
1812
+ #df9b=df9a[['delta','theta','gamma','vega','rho','implied volatility']]
1813
+ df9b=df9a[['Delta','Gamma','Theta','Vega','Rho']]
1809
1814
  dfg=df9b.T
1810
1815
  dfg.columns=['看涨期权','看跌期权']
1811
1816
 
siat/security_prices.py CHANGED
@@ -1005,8 +1005,8 @@ def get_prices_yf(ticker,start,end,threads=False):
1005
1005
  #下载单一股票的股价
1006
1006
  stock=yf.Ticker(ticker1)
1007
1007
  try:
1008
- p=stock.history(start=start,end=end,threads=threads)
1009
- #p=stock.history(start=start,end=end)
1008
+ #p=stock.history(start=start,end=end,threads=threads)
1009
+ p=stock.history(start=start,end=end)
1010
1010
  except Exception as e:
1011
1011
  emsg=str(e)
1012
1012
  #print(emsg)
siat/stock.py CHANGED
@@ -1220,7 +1220,7 @@ def compare_msecurity(tickers,measure,start,end, \
1220
1220
  axhline_value=0,axhline_label='', \
1221
1221
  preprocess='none',linewidth=1.5, \
1222
1222
  scaling_option='start', \
1223
- graph=True):
1223
+ graph=True,loc='best'):
1224
1224
  """
1225
1225
  功能:比较并绘制多条证券指标曲线(多于2条),个数可为双数或单数
1226
1226
  注意:
@@ -1277,10 +1277,15 @@ def compare_msecurity(tickers,measure,start,end, \
1277
1277
 
1278
1278
  dfi1=dfi[0]
1279
1279
  if dfi1 is None:
1280
- print(" #Warning(compare_msecurity): info not found for",pair[0])
1280
+ print(" #Warning(compare_msecurity): security info not found for either of",pair)
1281
+ continue
1281
1282
 
1282
1283
  if colname == '':
1283
- colname=list(dfi1)[0]
1284
+ try:
1285
+ colname=list(dfi1)[0]
1286
+ except:
1287
+ print(" #Warning(compare_msecurity): security prices unavailable for either of",pair)
1288
+ continue
1284
1289
 
1285
1290
  try:
1286
1291
  dfi1.rename(columns={colname:codetranslate(tickers[i*2])},inplace=True)
@@ -1445,16 +1450,16 @@ def compare_msecurity(tickers,measure,start,end, \
1445
1450
 
1446
1451
  else:
1447
1452
  if preprocess1 == 'standardize':
1448
- std_notes="注意:为便于比较,对数据进行了标准化处理"
1453
+ std_notes="注意:为突出变化趋势,对数据进行了标准化处理"
1449
1454
  measure_suffix='(标准化处理后)'
1450
1455
  if preprocess1 == 'normalize':
1451
- std_notes="注意:为便于比较,对数据进行了归一化处理"
1456
+ std_notes="注意:为突出变化趋势,对数据进行了归一化处理"
1452
1457
  measure_suffix='(归一化处理后)'
1453
1458
  if preprocess1 == 'logarithm':
1454
- std_notes="注意:为便于比较,对数据进行了对数处理"
1459
+ std_notes="注意:为突出变化趋势,对数据进行了对数处理"
1455
1460
  measure_suffix='(对数处理后)'
1456
1461
  if preprocess1 == 'scaling':
1457
- std_notes="注意:为便于比较,按"+scalingOptionText+"对数据进行了比例缩放"
1462
+ std_notes="注意:为突出变化趋势,按"+scalingOptionText+"对数据进行了比例缩放"
1458
1463
  measure_suffix='(比例缩放后)'
1459
1464
 
1460
1465
  x_label=std_notes+'\n'+x_label
@@ -1471,7 +1476,7 @@ def compare_msecurity(tickers,measure,start,end, \
1471
1476
  axhline_label='收益零线'
1472
1477
 
1473
1478
  draw_lines(dfs2,y_label,x_label,axhline_value,axhline_label,title_txt, \
1474
- data_label=False,resample_freq='H',smooth=True,linewidth=linewidth)
1479
+ data_label=False,resample_freq='H',smooth=True,linewidth=linewidth,loc=loc)
1475
1480
 
1476
1481
  return dfs
1477
1482
 
siat/translate.py CHANGED
@@ -885,7 +885,7 @@ def codetranslate0(code):
885
885
  ['COST','好事多'],['WMT','沃尔玛'],['DIS','迪士尼'],['BA','波音'],
886
886
  ['DPW','Ault Global'],['RIOT','Riot Blockchain'],['MARA','Marathon Digital'],['NCTY','9th City'],
887
887
 
888
- ['000651.SZ','格力电器A股'],['000333.SZ','美的集团A股'],
888
+ ['000651.SZ','格力电器A股'],['000333.SZ','美的集团A股'],['601127.SS','赛力斯'],
889
889
 
890
890
  ['00992.HK','港股联想'],['LENOVO GROUP','联想集团'],
891
891
  ['01810.HK','港股小米'],
@@ -999,7 +999,7 @@ def codetranslate0(code):
999
999
  ["159870.SZ",'鹏华中证细分化工产业ETF基金'],["512880.SS",'国泰中证全指证券公司ETF基金'],
1000
1000
  ["159995.SZ",'华夏国证半导体芯片ETF基金'],["159605.SZ",'广发中证海外中国互联网30(QDII-ETF)基金'],
1001
1001
  ["159766.SZ",'富国中证旅游主题ETF基金'],["159611.SZ",'广发中证全指电力公用事业ETF基金'],
1002
- ["516530.SS",'银华中证现代物流ETF基金'],
1002
+ ["516530.SS",'银华中证现代物流ETF基金'],["516670.SS",'畜牧养殖ETF'],
1003
1003
 
1004
1004
  ["515050.SS",'华夏中证5G通信主题ETF基金'],["510810.SS",'中证上海国企ETF基金'],
1005
1005
  ["515900.SS",'博时央企创新驱动ETF基金'],["516680.SS",'建信中证细分有色金属产业ETF基金'],
@@ -1804,8 +1804,10 @@ def get_all_stock_names():
1804
1804
 
1805
1805
  #上证A股
1806
1806
  df_ss=ak.stock_info_sh_name_code()
1807
- df_ss.rename(columns={'COMPANY_ABBR':'CNAME','ENGLISH_ABBR':'ENAME','LISTING_DATE':'LISTING'},inplace=True)
1808
- df_ss['SYMBOL']=df_ss['COMPANY_CODE']+'.SS'
1807
+ #df_ss.rename(columns={'COMPANY_ABBR':'CNAME','ENGLISH_ABBR':'ENAME','LISTING_DATE':'LISTING'},inplace=True)
1808
+ df_ss.rename(columns={'证券简称':'CNAME','上市日期':'LISTING'},inplace=True)
1809
+ df_ss['ENAME']=df_ss['CNAME']
1810
+ df_ss['SYMBOL']=df_ss['证券代码']+'.SS'
1809
1811
  df_ss_1=df_ss[['SYMBOL','CNAME','ENAME','LISTING']]
1810
1812
 
1811
1813
  #深证A股
siat/valuation_china.py CHANGED
@@ -431,6 +431,8 @@ if __name__=='__main__':
431
431
  #==============================================================================
432
432
  if __name__=='__main__':
433
433
  industry='食品饮料'
434
+
435
+ industry='生猪养殖'
434
436
  start='2021-1-1'
435
437
  end='2022-11-15'
436
438
  vtype='PE'
@@ -468,6 +470,7 @@ def industry_valuation_history_sw(industry,start,end,vtype='PE', \
468
470
  import akshare as ak
469
471
  sindustry=industry+'(申万)'
470
472
  try:
473
+ # 不支持申万三级行业
471
474
  df = ak.index_value_hist_funddb(symbol=sindustry, indicator=vtypes)
472
475
  except:
473
476
  print(" #Warning(industry_valuation_history_sw): industry not found",industry)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siat
3
- Version: 2.0
3
+ Version: 2.0.2
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 (北京外国语大学 国际商学院 王德宏 教授)
@@ -34,7 +34,7 @@ siat/financial_base.py,sha256=YxNVfhbgLQ4stLojI9nklB4sdQNuROcILcO3M2uz4Gs,40695
34
34
  siat/financial_statements.py,sha256=KDUl9b92EV5IseLLnEmG3czDHAaay2SWM2MpzZXPHpk,21528
35
35
  siat/financial_statements_test.py,sha256=FLhx8JD-tVVWSBGux6AMz1jioXX4U4bp9DmgFHYXb_w,716
36
36
  siat/financials.py,sha256=4b0fJAu1Mm5aX_zCIvF01CzzBokrprQpIk1N3za1FNA,76676
37
- siat/financials_china.py,sha256=bHo8-nBG2HAdg_sugzcA9yO_FdBP4WP-XpBeoeyepQo,173655
37
+ siat/financials_china.py,sha256=ZmwO9x6Gd_b1XM_dNy2AYLhhLumjlLGfCIBfNIu8kSs,173542
38
38
  siat/financials_china2.py,sha256=NKYsPOp36qGBT0qt7TwlRIcu-FE8CoKifYWjTwDHgaw,60037
39
39
  siat/financials_china2_test.py,sha256=Erz5k4LyOplBBvYls2MypuqHpVNJ3daiLdyeJezNPu0,2722
40
40
  siat/financials_china2_test2.py,sha256=C8CuYTMHN4Mhp-sTu-Bmg0zMXRCaYV6ezGDoYartRYQ,3507
@@ -48,10 +48,10 @@ siat/fund.py,sha256=wMDORsCBV8ZXfgwbtq-0bu3qqWY66dHnbqgllW0gWCo,24637
48
48
  siat/fund_china.py,sha256=KBVTvzgkjzD_AhxrZntx0p5muPQTL5oXT10_ed6fXnU,66934
49
49
  siat/fund_china_test.py,sha256=-Bh6m0J0GPpIbYXx-H2vpzJoNFI6pE2C2jVPa8DazgE,6649
50
50
  siat/fund_test.py,sha256=V4ADb8Gsp8gyeFTwcgRsJBpnUih_O-Q2V1ILc5oKjK8,1116
51
- siat/future_china.py,sha256=s9LgTuy4nFIXgqtZKc71HaZIyFnSmyvxEloGHxlmLZ4,16442
51
+ siat/future_china.py,sha256=5fTJCQ0AnZcHUY47TIaRXrASndzMTttAWPe2_QkhGk4,16657
52
52
  siat/future_china_test.py,sha256=BrSzmDVaOHki6rntOtosmRn-6dkfOBuLulJNqh7MOpc,1163
53
53
  siat/global_index_test.py,sha256=hnFp3wqqzzL-kAP8mgxDZ54Bd5Ijf6ENi5YJlGBgcXw,2402
54
- siat/grafix.py,sha256=dRPQM6ZjGWrQqa2u4h0GZpQptK-1bUZR5HTaeSslZM4,63490
54
+ siat/grafix.py,sha256=P9juLNhqs1TkmKz9oPZxlra2obVGcTVN1QdsJ4fZJn4,63498
55
55
  siat/grafix_test.py,sha256=kXvcpLgQNO7wd30g_bWljLj5UH7bIVI0_dUtXbfiKR0,3150
56
56
  siat/holding_risk.py,sha256=108tiI7DDl8uUZkyUiq6Y-McKeim1mxYsgqgk7CcXw8,30544
57
57
  siat/holding_risk_test.py,sha256=FRlw_9wFG98BYcg_cSj95HX5WZ1TvkGaOUdXD7-V86s,474
@@ -65,7 +65,7 @@ siat/markowitz_test.py,sha256=fDXoPp6DrKeneYjd0lbb0KfYUJj-VcOvVaPlfsIOstw,5818
65
65
  siat/markowitz_test2.py,sha256=FcVZqYU5va4567WGUVUJ7cMQdVbBGxeBAz82Y3BhCTI,2193
66
66
  siat/ml_cases.py,sha256=FYDk0O7l9hhHlbrlOVGgbH-h2DA503lhKFi9XugH1f0,86874
67
67
  siat/ml_cases_example1.py,sha256=xRGb3YTQEDTOnaWNzZN_myU5umQnA2RdMNiPrxTmn9c,1673
68
- siat/option_china.py,sha256=NHonANLpJdQTs6EjQwXtyhpdKYiGocYQ2vElW_Wlur0,92393
68
+ siat/option_china.py,sha256=mId-poVS-0acyxaoSUl6Bz1N05nb1zhAWjv_i5TLGzk,92571
69
69
  siat/option_china_test.py,sha256=UQ-YUHUjoGBQyanLcM-yzqeEIUQP_gCQIeT0W6rnUnA,16355
70
70
  siat/option_pricing.py,sha256=ZvOziCkXODUjqSw2Q7Ux_gepw9UQaGMgvbI_YuceyX8,69625
71
71
  siat/option_pricing_test.py,sha256=eeorV5Ja5vjlRXnP6fWJHetGU5Vb8SnLopkC6RV3GfA,2203
@@ -81,11 +81,11 @@ siat/risk_free_rate_test.py,sha256=CpmhUf8aEAEZeNu4gvWP2Mz2dLoIgBX5bI41vfUBEr8,4
81
81
  siat/sector_china.py,sha256=0JFs5wXZXOu5tuGnFXKBuR4TVIGqvP_W4psQAAAjW-M,100084
82
82
  siat/sector_china_test.py,sha256=1wq7ef8Bb_L8F0h0W6FvyBrIcBTEbrTV7hljtpj49U4,5843
83
83
  siat/security_price.py,sha256=ibrdUJyt_n0c8oKRbVStE1_ptmWkzy4YIHjpc_fGiPQ,29148
84
- siat/security_prices.py,sha256=Xl7EHz16qCUIzuPGpEi-g-tLGQKk3MqHmic556-Vs7U,71984
84
+ siat/security_prices.py,sha256=vmN39llWbm-B1awfuZzR14UlEca6Tm3KOvBQUYZJzXw,71984
85
85
  siat/security_prices_test.py,sha256=OEphoJ87NPKoNow1QA8EU_5MUYrJF-qKoWKNapVfZNI,10779
86
86
  siat/setup.py,sha256=up65rQGLmTBkhtaMLowjoQXYmIsnycnm4g1SYmeQS6o,1335
87
87
  siat/shenwan index history test.py,sha256=JCVAzOSEldHalhSFa3pqD8JI_8_djPMQOxpkuYU-Esg,1418
88
- siat/stock.py,sha256=kW_R_CW9WbR0bzwwUlFwvWh0oJE3zA8gfKw_AJUWfCo,117254
88
+ siat/stock.py,sha256=UtM4ybqEShGaCmHmi__vpOeaXJtAj77SkWZ6onpYNS0,117508
89
89
  siat/stock_advice_linear.py,sha256=-twT7IGP-NEplkL1WPSACcNJjggRB2j4mlAQCkzOAuo,31655
90
90
  siat/stock_base.py,sha256=uISvbRyOGy8p9QREA96CVydgflBkn5L3OXOGKl8oanc,1312
91
91
  siat/stock_china.py,sha256=qsrGq5tUyToOGDfVRnMEeiGps2Tpz5o38LlK6kB6k3Y,68123
@@ -106,12 +106,12 @@ siat/transaction_test.py,sha256=Z8g1LJCN4-mnUByXMUMoFmN0t105cbmsz2QmvSuIkbU,1858
106
106
  siat/translate-20230125.py,sha256=NPPSXhT38s5t9fzMvl_fvi4ckSB73ThLmZetVI-xGdU,117953
107
107
  siat/translate-20230206.py,sha256=-vtI125WyaJhmPotOpDAmclt_XnYVaWU9ByLWZ6FyYE,118133
108
108
  siat/translate-20230215.py,sha256=TJgtPE3n8IjljmZ4Pefy8dmHoNdFF-1zpML6BhA9FKE,121657
109
- siat/translate.py,sha256=Ed3H3G1BiMaWL1iKGiiE4YP92tgj23xhlIdsU42Uqlk,124748
109
+ siat/translate.py,sha256=TLDZcfR3aIWmxbWTYSO7W-xjtEaW21qqBLOJkufxEpo,124932
110
110
  siat/universal_test.py,sha256=CDAOffW1Rvs-TcNN5giWVvHMlch1w4dp-w5SIV9jXL0,3936
111
- siat/valuation_china.py,sha256=J78FTnwyzOjNENq30MXaQdby6EtcBZi3AMeUKhGtuok,51268
111
+ siat/valuation_china.py,sha256=gYYXeT9bBPyQ251TCsYlibWcu6JA8x-YOKqLUEeLE7U,51342
112
112
  siat/valuation_market_china_test.py,sha256=gbJ0ioauuo4koTPH6WKUkqcXiQPafnbhU5eKJ6lpdLA,1571
113
113
  siat/var_model_validation.py,sha256=zB_Skk_tmzIR15l6oAW3am4HBGVIG-eZ8gJhCdXZ8Qw,14859
114
- siat-2.0.dist-info/METADATA,sha256=RLRwoVtxEgkdjPtC84be5P5At8kKuc2_P5WG9RxSqZQ,1397
115
- siat-2.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
116
- siat-2.0.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
117
- siat-2.0.dist-info/RECORD,,
114
+ siat-2.0.2.dist-info/METADATA,sha256=6-5C24wMSK8bNP0-91ngCJh9UixYHv9u8m37OsNaKUE,1399
115
+ siat-2.0.2.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
116
+ siat-2.0.2.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
117
+ siat-2.0.2.dist-info/RECORD,,
File without changes