siat 3.7.21__py3-none-any.whl → 3.7.23__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
@@ -4786,12 +4786,13 @@ def ttest(sample1,sample2):
4786
4786
 
4787
4787
 
4788
4788
 
4789
- async def convert_jupyter_to_pdf(notebook_path, output_pdf_path, size="A4"):
4789
+ async def jupyter2pdf(notebook_path, output_pdf_path, size="A3"):
4790
4790
  """
4791
4791
  将 Jupyter Notebook 转换为 PDF 文件
4792
4792
  参数:
4793
- notebook_path (str): Jupyter Notebook 文件路径(.ipynb 文件)
4794
- output_pdf_path (str): 输出的 PDF 文件路径
4793
+ notebook_path (str): Jupyter Notebook文件(.ipynb文件,含路径)
4794
+ output_pdf_path (str): 输出的PDF文件(含路径)
4795
+ size:PDF页面大小,默认"A3"幅面,支持"A4"幅面
4795
4796
 
4796
4797
  返回:
4797
4798
  None
@@ -4800,6 +4801,10 @@ async def convert_jupyter_to_pdf(notebook_path, output_pdf_path, size="A4"):
4800
4801
  await convert_notebook_to_pdf(notebook_path, output_pdf_path)
4801
4802
  注意3:notebook_path和output_pdf_path中可以带路径
4802
4803
  """
4804
+ size=size.upper()
4805
+ if not size in ['A4','A3','letter']:
4806
+ size='A3'
4807
+
4803
4808
  import os
4804
4809
  from nbconvert import HTMLExporter
4805
4810
  from playwright.async_api import async_playwright
@@ -4811,7 +4816,7 @@ async def convert_jupyter_to_pdf(notebook_path, output_pdf_path, size="A4"):
4811
4816
  html_exporter = HTMLExporter()
4812
4817
  try:
4813
4818
  html_content, _ = html_exporter.from_filename(notebook_path)
4814
- print("Start to convert ipynb file to pdf in {}, ...".format(size))
4819
+ print("Start to convert ipynb file to pdf in {} size, ...".format(size))
4815
4820
 
4816
4821
  except:
4817
4822
  print("File not found for {}".format(notebook_path))
@@ -4830,7 +4835,7 @@ async def convert_jupyter_to_pdf(notebook_path, output_pdf_path, size="A4"):
4830
4835
  await page.pdf(path=output_pdf_path, format=size)
4831
4836
  await browser.close()
4832
4837
 
4833
- print(f"PDF file generated as {output_pdf_path}")
4838
+ print(f"PDF created as {output_pdf_path}")
4834
4839
 
4835
4840
  except Exception as e:
4836
4841
  print(f"Conversion failed: {e}")
siat/security_price2.py CHANGED
@@ -65,6 +65,13 @@ if __name__=='__main__':
65
65
  fill=False
66
66
  fill=True
67
67
 
68
+ # 新测试组
69
+ ticker="XAUUSD"
70
+ fromdate='2024-5-1'; todate='2024-5-20'
71
+ ticker_type='auto';source='auto'
72
+ adjust='';fill=False
73
+
74
+
68
75
  price,found=get_price_1ticker(ticker=ticker,fromdate=fromdate,todate=todate, \
69
76
  ticker_type=ticker_type)
70
77
 
siat/security_prices.py CHANGED
@@ -553,7 +553,9 @@ if __name__=='__main__':
553
553
  ticker='TRBNCN.M'
554
554
  ticker='RSAYCN.M'
555
555
 
556
- ticker='GC.F'
556
+ ticker='GC.F' #无法下载
557
+ ticker='XAUCNY' #一盎司黄金的现货人民币价格
558
+ ticker='XAUUSD' #一盎司黄金的现货美元价格
557
559
 
558
560
  ticker=['AAPL','MSFT']
559
561
 
@@ -1366,6 +1368,8 @@ if __name__=='__main__':
1366
1368
  ticker='AAPL'
1367
1369
  ticker='GC=F'
1368
1370
 
1371
+ ticker='XAUUSD'
1372
+
1369
1373
  ticker=['AAPL','MSFT']
1370
1374
  ticker=['0700.HK','600519.SS']
1371
1375
  ticker=['AAPL','MSFT','0700.HK','600519.SS']
siat/stock.py CHANGED
@@ -625,6 +625,19 @@ if __name__ =="__main__":
625
625
  ticker_type='auto'
626
626
  facecolor='whitesmoke'
627
627
 
628
+ # 测试组6
629
+ ticker='XAUUSD'
630
+ indicator='Close'
631
+ fromdate='2024-5-1'; todate='2024-5-20'
632
+ zeroline=False
633
+ attention_value='';attention_value_area=''
634
+ attention_point='';attention_point_area=''
635
+ average_value=False
636
+ datatag=False;power=0;graph=True;source='auto'
637
+ mark_top=True;mark_bottom=True;mark_end=True
638
+ ticker_type='auto';facecolor='whitesmoke';loc='best'
639
+
640
+
628
641
  df=security_indicator(ticker,indicator,fromdate,todate,ticker_type=ticker_type)
629
642
 
630
643
  def security_indicator(ticker,indicator, \
siat/translate.py CHANGED
@@ -1224,6 +1224,7 @@ def codetranslate0(code):
1224
1224
 
1225
1225
  ["SPY",'SPDR标普500ETF'],['SPYD','SPDR标普500股利优先ETF'],
1226
1226
  ["SPYG",'SPDR标普500成长优先ETF'],['SPYV','SPDR标普500价值优先ETF'],
1227
+ ["GLD",'SPDR黄金ETF'],
1227
1228
  ["VOO",'Vanguard标普500ETF'],['VOOG','Vanguard标普500成长优先ETF'],
1228
1229
  ["VOOV",'Vanguard标普500价值优先ETF'],['IVV','iShares标普500ETF'],
1229
1230
  ["DGT",'SPDR Global Dow ETF'],['ICF','iShares C&S REIT ETF'],
@@ -1270,6 +1271,7 @@ def codetranslate0(code):
1270
1271
  ["HG=F",'COMEX铜矿石期货'],["CL=F",'NYM原油期货'],
1271
1272
  ["NG=F",'NYM天然气期货'],["MTF=F",'NYM煤炭期货'],
1272
1273
  ["GC=F",'COMEX黄金期货'],["MGC=F",'COMEX微型黄金期货'],
1274
+ ["SGC=F",'上海黄金期货'],
1273
1275
  ["6B=F",'CME英镑兑美元期货'],
1274
1276
  ["S=F",'CBT大豆期货'],["C=F",'CBT玉米期货'],
1275
1277
  ["ES=F",'CME标普500指数期货'],["YM=F",'CBT道指期货'],
@@ -1701,6 +1703,8 @@ def codetranslate0(code):
1701
1703
  ['^NYICDX','ICE美元指数'],['DX-Y.NYB','ICE美元指数'],
1702
1704
  ['EUR_I','STOOQ欧元指数'],
1703
1705
 
1706
+ ['XAUUSD','1盎司黄金现货兑美元'],['XAUCNY','1盎司黄金现货兑人民币'],
1707
+
1704
1708
  #经济体基准利率
1705
1709
  ['INRTAU.M','澳大利亚基准利率'],
1706
1710
  ['INRTBR.M','巴西基准利率'],
@@ -2050,6 +2054,7 @@ def codetranslate1(code):
2050
2054
 
2051
2055
  ["SPY",'SPDR SP500 ETF'],['SPYD','SPDR SP500 Div ETF'],
2052
2056
  ["SPYG",'SPDR SP500 Growth ETF'],['SPYV','SPDR SP500 Value ETF'],
2057
+ ["GLD",'SPDR Gold Shares ETF'],
2053
2058
  ["VOO",'Vanguard SP500 ETF'],['VOOG','Vanguard SP500 Growth ETF'],
2054
2059
  ["VOOV",'Vanguard SP500 Value ETF'],['IVV','iShares SP500 ETF'],
2055
2060
  ["DGT",'SPDR Global Dow ETF'],['ICF','iShares C&S REIT ETF'],
@@ -2184,6 +2189,8 @@ def codetranslate1(code):
2184
2189
  ['U11.SI','UOB(SI)'],['C6L.SI','Singapore Airlines(SI)'],['CC3.SI','Starhub(SI)'],
2185
2190
  ['S08.SI','Singpost(SI)'],['F34.SI','WILMAR(SI)'],['C31.SI','CapitaLand(SI)'],
2186
2191
 
2192
+ ['XAUUSD','Gold(ozt)->USD'],['XAUCNY','Gold(ozt)->RMB'],
2193
+
2187
2194
 
2188
2195
  ], columns=['code','codename'])
2189
2196
 
@@ -3396,6 +3403,7 @@ def ticker1_name(ticker,ticker_type='auto'):
3396
3403
  #==============================================================================
3397
3404
  if __name__=='__main__':
3398
3405
  ticker='600519.SS' #股票
3406
+ ticker='XAUUSD' #一盎司黄金的美元价格
3399
3407
  ticker={'Market':('US','^SPX','中概教培组合'),'EDU':0.5,'TAL':0.3,'TEDU':0.2}
3400
3408
  pf={'Market':('US','^SPX','中概教培组合'),'EDU':0.5,'TAL':0.3,'TEDU':0.2}
3401
3409
  ticker=['600519.SS','sh018003',pf]
siat/yf_name.py CHANGED
@@ -372,13 +372,17 @@ def ticker_info1(ticker,info="all",test_access=True,print_title=True):
372
372
 
373
373
  if __name__=='__main__':
374
374
  ticker="SGC=F"
375
- yahoo_name1(ticker)
375
+ ticker="XAUUSD"
376
+ short_name=False;add_suffix=True;maxlen=80
377
+
378
+ yahoo_name1y(ticker)
376
379
 
377
- def yahoo_name1(ticker,short_name=False,add_suffix=True,maxlen=80):
380
+ def yahoo_name1y(ticker,short_name=False,add_suffix=True,maxlen=80):
378
381
  """
379
382
  功能:从雅虎财经取得全球证券名称,仅限英文。需要去掉常用词,如Corporation
380
383
  优点:对未定义的证券代码也可给出英文名称,即使在中文语言环境中
381
- 现存问题:需要访问雅虎,且耗时稍长
384
+ 现存问题:需要访问雅虎,且耗时稍长;当ticker不存在时会提示一大堆错误信息
385
+ 仅作备用
382
386
  """
383
387
 
384
388
  #测试雅虎
@@ -391,9 +395,20 @@ def yahoo_name1(ticker,short_name=False,add_suffix=True,maxlen=80):
391
395
 
392
396
  import yfinance as yf
393
397
  ticker_info = yf.Ticker(ticker1)
394
-
398
+
399
+ import os, sys
400
+ class HiddenPrints:
401
+ def __enter__(self):
402
+ self._original_stdout = sys.stdout
403
+ sys.stdout = open(os.devnull, 'w')
404
+
405
+ def __exit__(self, exc_type, exc_val, exc_tb):
406
+ sys.stdout.close()
407
+ sys.stdout = self._original_stdout
408
+
395
409
  try:
396
- t_info=ticker_info.info
410
+ with HiddenPrints():
411
+ t_info=ticker_info.info
397
412
  except:
398
413
  pass
399
414
  return ticker
@@ -408,7 +423,12 @@ def yahoo_name1(ticker,short_name=False,add_suffix=True,maxlen=80):
408
423
  try:
409
424
  t_name0=t_info['longName']
410
425
  except:
411
- t_name0=t_info['shortName']
426
+ try:
427
+ t_name0=t_info['shortName']
428
+ except:
429
+ pass
430
+ return ticker
431
+
412
432
 
413
433
  if len(t_name0) > maxlen:
414
434
  t_name0=t_info['shortName']
@@ -503,13 +523,13 @@ def filter_stock_name(original_name):
503
523
  remove_list=[' CORPORATION',' BERHAD',' BHD',' PLC',' INC',' AG ST',' NA O N', \
504
524
  ' AKTIENGESELLSCHAFT','(PUBL)',' LLC', \
505
525
  ' CO LTD',' CO LIMITED',' LTD',' LIMITED',' COMPANY',' INCORPORATED', \
506
- ' CORP LTD',' CORP',' AB', \
526
+ ' CORP LTD',' CORP',' AB',' CO', \
507
527
  ' GROUP CO','(GROUP)',' GROUP', \
508
528
  ' PL S A',' PL SA',' AG', \
509
529
  ' SCIENCE & TECHNOLOGY',' HIGH-TECH',' HIGH TECHNOLOGY', \
510
530
 
511
- ' APR',
512
-
531
+ ' APR',' MAY',' JUN',' JUL',' AUG',' SEP',' SEPT',' OCT',' NOV',' DEC',
532
+ ' JAN',' FEB',' MAR',
513
533
 
514
534
  ]
515
535
 
@@ -548,6 +568,7 @@ if __name__ == '__main__':
548
568
  stock_code='MSFT'
549
569
 
550
570
  stock_code='GC.F'
571
+ stock_code='XAUUSD'
551
572
 
552
573
  stooq_name1(stock_code)
553
574
 
@@ -605,7 +626,23 @@ def stooq_name1(stock_code,add_suffix=True):
605
626
 
606
627
  #未找到证券代码
607
628
  if t_name == 'Stooq':
608
- return stock_code
629
+
630
+ #尝试不加后缀'.us'
631
+ url = f"https://stooq.com/q/?s={stock_code}"
632
+ response = requests.get(url,headers=headers)
633
+ if response.status_code == 200:
634
+ soup = BeautifulSoup(response.text, 'html.parser')
635
+ soup_title=soup.title
636
+ soup_text=soup_title.text
637
+ soup_text_list=soup_text.split(' - ')
638
+
639
+ t_name = soup_text_list[1].strip()
640
+ else:
641
+ pass
642
+ return stock_code
643
+
644
+ if t_name == 'Stooq':
645
+ return stock_code
609
646
 
610
647
  #过滤名称中多余的尾部词汇
611
648
  t_name=filter_stock_name(t_name)
@@ -623,6 +660,62 @@ def stooq_name1(stock_code,add_suffix=True):
623
660
  return t_name
624
661
 
625
662
  #==============================================================================
663
+ #==============================================================================
664
+ if __name__ == '__main__':
665
+ stock_code='AAPL'
666
+ stock_code='600519.SS'
667
+ stock_code='6758.T'
668
+ stock_code='6758.JP'
669
+ stock_code='ULVR.L'
670
+ stock_code='1155.KL'
671
+ stock_code='MSFT'
672
+
673
+ stock_code='GC=F'
674
+ stock_code='XAUUSD'
675
+
676
+ yahoo_name1(stock_code)
677
+
678
+
679
+ def yahoo_name1(stock_code):
680
+
681
+ import requests
682
+ from bs4 import BeautifulSoup
683
+
684
+ stock_code1=stock_code.lower()
685
+
686
+ #抓取证券名称
687
+ headers = {
688
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
689
+ }
690
+ url = f"https://finance.yahoo.com/quote/{stock_code1}"
691
+ response = requests.get(url,headers=headers)
692
+ if response.status_code == 200:
693
+ soup = BeautifulSoup(response.text, 'html.parser')
694
+ soup_title=soup.title
695
+ soup_text=soup_title.text
696
+
697
+ stock_code2=stock_code1.upper()
698
+ try:
699
+ pos=soup_text.index(stock_code2)
700
+ except:
701
+ pass
702
+ return stock_code
703
+ t_name = soup_text[:pos-1].strip()
704
+ else:
705
+ pass
706
+ return stock_code
707
+
708
+ #过滤名称中多余的尾部词汇
709
+ t_name=filter_stock_name(t_name).strip()
710
+ t_name=filter_stock_name(t_name).strip()
711
+
712
+ return t_name
713
+
714
+ #==============================================================================
715
+
716
+
717
+
718
+
626
719
  if __name__=='__main__':
627
720
  ticker='1155.KL'
628
721
  ticker='MSFT'
@@ -646,6 +739,9 @@ if __name__=='__main__':
646
739
 
647
740
  ticker='IBM'
648
741
 
742
+ ticker='XAUUSD'
743
+ short_name=False;add_suffix=True;maxlen=80
744
+
649
745
  get_stock_name1_en(ticker)
650
746
 
651
747
  def get_stock_name1_en(ticker,short_name=False,add_suffix=True,maxlen=80):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siat
3
- Version: 3.7.21
3
+ Version: 3.7.23
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
@@ -19,7 +19,7 @@ siat/capm_beta.py,sha256=cxXdRVBQBllhbfz1LeTJAIWvyRYhW54nhtNUXv4HwS0,29063
19
19
  siat/capm_beta2.py,sha256=-ZYYp1HK7SkfTR3vBKZ0QVC4Q_tbST2O4MGbX_V77J0,32031
20
20
  siat/capm_beta_test.py,sha256=ImR0c5mc4hIl714XmHztdl7qg8v1E2lycKyiqnFj6qs,1745
21
21
  siat/cmat_commons.py,sha256=Nj9Kf0alywaztVoMVeVVL_EZk5jRERJy8R8kBw88_Tg,38116
22
- siat/common.py,sha256=Fk794V57LTXPcQfEFc579u56Lq9ffhJhKGaG7ANhcws,175777
22
+ siat/common.py,sha256=u5Q24UXX6jstkemvo-owK5v3akNNHyrRuwXjjQwJsjk,175935
23
23
  siat/compare_cross.py,sha256=3iP9TH2h3w27F2ARZc7FjKcErYCzWRc-TPiymOyoVtw,24171
24
24
  siat/compare_cross_test.py,sha256=xra5XYmQGEtfIZL2h-GssdH2hLdFIhG3eoCrkDrL3gY,3473
25
25
  siat/concepts_iwencai.py,sha256=m1YEDtECRT6FqtzlKm91pt2I9d3Z_XoP59BtWdRdu8I,3061
@@ -100,15 +100,15 @@ siat/risk_free_rate_test.py,sha256=CpmhUf8aEAEZeNu4gvWP2Mz2dLoIgBX5bI41vfUBEr8,4
100
100
  siat/sector_china.py,sha256=QShFSaJMOydLKL-eCbUy_cWFnXnbdZW90lCUAp6B5lU,151007
101
101
  siat/sector_china_test.py,sha256=1wq7ef8Bb_L8F0h0W6FvyBrIcBTEbrTV7hljtpj49U4,5843
102
102
  siat/security_price.py,sha256=2oHskgiw41KMGfqtnA0i2YjNNV6cYgtlUK0j3YeuXWs,29185
103
- siat/security_price2.py,sha256=LYV478O4vizVNbM6WYlQvaQFq9kjh2ftljhuABGsjkU,26425
104
- siat/security_prices.py,sha256=ql1-7TC1w36a_2nKxeR45Cw0cKMl5o7yCl2M9QE3jx8,108909
103
+ siat/security_price2.py,sha256=dYwvz9H-uWp-Gyc1g_MId9k8cITS6ZHmjW-Fc2ypp-0,26587
104
+ siat/security_prices.py,sha256=HoCZ7YPrQYZHgKC-LyXFeeBCTfRc3EMMEiEg52SVv2w,109073
105
105
  siat/security_prices_test.py,sha256=OEphoJ87NPKoNow1QA8EU_5MUYrJF-qKoWKNapVfZNI,10779
106
106
  siat/security_trend.py,sha256=o0vpWdrJkmODCP94X-Bvn-w7efHhj9HpUYBHtLl55D0,17240
107
107
  siat/security_trend2-20240620.py,sha256=QVnEcb7AyVbO77jVqfFsJffGXrX8pgJ9xCfoAKmWBPk,24854
108
108
  siat/security_trend2.py,sha256=mamJtFAbXC1orGgMEmp0taPk-yUqWm-jdGf64bjhn2Q,29756
109
109
  siat/setup.py,sha256=up65rQGLmTBkhtaMLowjoQXYmIsnycnm4g1SYmeQS6o,1335
110
110
  siat/shenwan index history test.py,sha256=JCVAzOSEldHalhSFa3pqD8JI_8_djPMQOxpkuYU-Esg,1418
111
- siat/stock.py,sha256=aelzuy_mPBC0eBknjnRuBVYLZAjMw4ykvKWQXY_4K30,158649
111
+ siat/stock.py,sha256=JT_sq-9B8A25fzTh7rSj5-NnO2IlGbI_7O47ZZu9Dk0,159068
112
112
  siat/stock_advice_linear.py,sha256=-twT7IGP-NEplkL1WPSACcNJjggRB2j4mlAQCkzOAuo,31655
113
113
  siat/stock_base.py,sha256=uISvbRyOGy8p9QREA96CVydgflBkn5L3OXOGKl8oanc,1312
114
114
  siat/stock_china.py,sha256=85Ggb21E2mrCYMdSSTTrkoyyLGXMK2V-BtlweHomSRg,93460
@@ -134,7 +134,7 @@ siat/transaction_test.py,sha256=Z8g1LJCN4-mnUByXMUMoFmN0t105cbmsz2QmvSuIkbU,1858
134
134
  siat/translate-20230125.py,sha256=NPPSXhT38s5t9fzMvl_fvi4ckSB73ThLmZetVI-xGdU,117953
135
135
  siat/translate-20230206.py,sha256=-vtI125WyaJhmPotOpDAmclt_XnYVaWU9ByLWZ6FyYE,118133
136
136
  siat/translate-20230215.py,sha256=TJgtPE3n8IjljmZ4Pefy8dmHoNdFF-1zpML6BhA9FKE,121657
137
- siat/translate.py,sha256=ESiwyQX_eGxdoBlGxFdJpgJfOx9NdSvBww4Ck7d9kto,251537
137
+ siat/translate.py,sha256=hZljXo8Wlee9DQPHnn6Pwt2shl1Ky-yuAIpmNDTdsHA,251884
138
138
  siat/translate_20240606.py,sha256=63IyHWEU3Uz9mjwyuAX3fqY4nUMdwh0ICQAgmgPXP7Y,215121
139
139
  siat/translate_241003_keep.py,sha256=un7Fqe1v35MXsja5exZgjmLzrZtt66NARZIGlyFuGGU,218747
140
140
  siat/universal_test.py,sha256=CDAOffW1Rvs-TcNN5giWVvHMlch1w4dp-w5SIV9jXL0,3936
@@ -142,9 +142,9 @@ siat/valuation.py,sha256=tSW5jyda3lChqBkdsbBGfdUeh9bCfjo6P93CjLif9eM,50825
142
142
  siat/valuation_china.py,sha256=CVp1IwIsF3Om0J29RGkyxZLt4n9Ug-ua_RKhLwL9fUQ,69624
143
143
  siat/valuation_market_china_test.py,sha256=gbJ0ioauuo4koTPH6WKUkqcXiQPafnbhU5eKJ6lpdLA,1571
144
144
  siat/var_model_validation.py,sha256=R0caWnuZarrRg9939hxh3vJIIpIyPfvelYmzFNZtPbo,14910
145
- siat/yf_name.py,sha256=ueaMUifnQ3cE3jc1s84mPDLjT9EOuyx8lnY7AFe_YHQ,21165
146
- siat-3.7.21.dist-info/LICENSE,sha256=NTEMMROY9_4U1szoKC3N2BLHcDd_o5uTgqdVH8tbApw,1071
147
- siat-3.7.21.dist-info/METADATA,sha256=QX6HIgpLmiCwCAl0mTeY5p4rzwUo4gXXRj2eZ2P-AVs,8117
148
- siat-3.7.21.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
149
- siat-3.7.21.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
150
- siat-3.7.21.dist-info/RECORD,,
145
+ siat/yf_name.py,sha256=_WhJmon5KbTw3yR54bfTkiAhkP6GenuCcQ2Vmx5El2I,24025
146
+ siat-3.7.23.dist-info/LICENSE,sha256=NTEMMROY9_4U1szoKC3N2BLHcDd_o5uTgqdVH8tbApw,1071
147
+ siat-3.7.23.dist-info/METADATA,sha256=wdVz2LprfX0smE-JCetYAgGRH0pV0XnavkRyUK02uz4,8117
148
+ siat-3.7.23.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
149
+ siat-3.7.23.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
150
+ siat-3.7.23.dist-info/RECORD,,
File without changes
File without changes