siat 3.7.22__py3-none-any.whl → 3.7.24__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
@@ -4848,12 +4848,104 @@ async def jupyter2pdf(notebook_path, output_pdf_path, size="A3"):
4848
4848
  elif os.path.exists(html_file):
4849
4849
  os.remove(html_file)
4850
4850
 
4851
+ return
4852
+
4851
4853
  if __name__ == '__main__':
4852
4854
  # 定义 Notebook 路径和输出 PDF 路径
4853
4855
  notebook_path = r"S:\SIA\机工社版本\脚本测试\证券投资分析-第一章案例Python脚本-检测2.ipynb" # 替换为你的 Notebook 文件路径
4854
4856
  output_pdf_path = "E:/output_notebook.pdf" # 替换为你想保存的 PDF 文件路径
4855
- #await convert_notebook_to_pdf(notebook_path, output_pdf_path)
4857
+ #await jupyter2pdf(notebook_path, output_pdf_path)
4858
+ # 注意:上面的await命令会导致编译失败,测试后要注释掉
4859
+
4860
+ #==============================================================================
4861
+ async def jupyter2pdf2(notebook_dir, notebook_file):
4862
+ """
4863
+ 将 Jupyter Notebook 转换为 PDF 文件
4864
+ 参数:
4865
+ notebook_dir (str): Jupyter Notebook文件所在的目录,不含文件名
4866
+ notebook_file (str): Jupyter Notebook文件名
4867
+ 输出:
4868
+ 同时生成A4和A3两种幅面的pdf文件,由使用者自行挑选一个效果最好的。
4869
+ 返回:
4870
+ None
4871
+ 注意1:pip install playwright之后可能还要执行playwright install
4872
+ 注意2:调用本函数的格式是异步await开头
4873
+ await convert_notebook_to_pdf(notebook_path, output_pdf_path)
4874
+ 注意3:notebook_path和output_pdf_path中可以带路径
4875
+ """
4876
+
4877
+ # 路径分割符号
4878
+ if ('/' in notebook_dir) and not ('\\' in notebook_dir):
4879
+ sep='/'
4880
+ else:
4881
+ sep='\\'
4882
+
4883
+ # ipynb文件的完整路径
4884
+ if ('.ipynb' in notebook_file):
4885
+ notebook_file1=notebook_file.replace('.ipynb','')
4886
+ else:
4887
+ notebook_file1=notebook_file
4888
+ notebook_path=notebook_dir+sep+notebook_file1+'.ipynb'
4889
+
4890
+ # pdf文件的完整路径
4891
+ output_pdf_path1=notebook_dir+sep+notebook_file1+'A4.pdf'
4892
+ output_pdf_path2=notebook_dir+sep+notebook_file1+'A3.pdf'
4893
+
4894
+ import os
4895
+ from nbconvert import HTMLExporter
4896
+ from playwright.async_api import async_playwright
4897
+
4898
+ html_file = ""
4899
+
4900
+ try:
4901
+ # 导出 Notebook 为 HTML
4902
+ html_exporter = HTMLExporter()
4903
+ try:
4904
+ html_content, _ = html_exporter.from_filename(notebook_path)
4905
+ print("Converting notebook file to pdf in both A4 and A3 sizes ...")
4856
4906
 
4907
+ except:
4908
+ print("File not found for {}".format(notebook_path))
4909
+ return
4910
+
4911
+ # 创建临时 HTML 文件
4912
+ html_file = "temp_notebook.html"
4913
+ with open(html_file, "w", encoding="utf-8") as f:
4914
+ f.write(html_content)
4915
+
4916
+ # 使用 Playwright 打开 HTML 并保存为 PDF
4917
+ async with async_playwright() as p:
4918
+ browser = await p.chromium.launch()
4919
+ page = await browser.new_page()
4920
+ await page.goto(f"file://{os.path.abspath(html_file)}")
4921
+
4922
+ await page.pdf(path=output_pdf_path1, format='A4')
4923
+ await page.pdf(path=output_pdf_path2, format='A3')
4924
+
4925
+ await browser.close()
4926
+
4927
+ print(f"2 PDF created in the same directory, pick 1 you think best")
4928
+
4929
+ except Exception as e:
4930
+ print(f"Conversion failed because {e}")
4931
+ return
4932
+
4933
+ finally:
4934
+ if html_file == "":
4935
+ return
4936
+ # 删除临时 HTML 文件
4937
+ elif os.path.exists(html_file):
4938
+ os.remove(html_file)
4939
+
4940
+ return
4941
+
4942
+ if __name__ == '__main__':
4943
+ # 替换为你的Notebook文件路径
4944
+ notebook_dir = r"S:\北外工作-25春\周4.财经与生活附校\Session 1"
4945
+ # 替换为你想转存PDF的Notebook文件名
4946
+ notebook_file = "Session 1 全球证券市场-简化版.ipynb"
4947
+ #await jupyter2pdf2(notebook_dir, notebook_file)
4948
+ # 注意:上面的await命令会导致编译失败,测试后要注释掉
4857
4949
  #==============================================================================
4858
4950
  #==============================================================================
4859
4951
  #==============================================================================
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/security_trend2.py CHANGED
@@ -185,6 +185,10 @@ def security_trend(ticker,indicator='Close',adjust='', \
185
185
  attention_value参数:绘图时绘制一条水平线,用以强调一个阈值。默认不绘制。
186
186
  average_value参数:开关打开时,绘图时绘制一条均值线,仅适用于绘制单条曲线。默认关闭。
187
187
 
188
+ attention_point:绘制横轴竖线,可为单个横轴点或列表,默认不绘制
189
+ attention_point_area:为两个横轴点的列表,其间区域着色,默认不绘制。
190
+ 可与attention_point配合使用。
191
+
188
192
  kline参数:开关打开时,绘制一条K线图,仅适用于单只股票。默认关闭。
189
193
  kline_demo参数:与kline开关同时打开时,绘制一条K线图原理演示图,仅适用于单只股票。
190
194
  mav参数:仅当kline开关打开时有效,用于指定K线图中单条或多条移动平均线的天数。
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'],
@@ -1702,6 +1703,8 @@ def codetranslate0(code):
1702
1703
  ['^NYICDX','ICE美元指数'],['DX-Y.NYB','ICE美元指数'],
1703
1704
  ['EUR_I','STOOQ欧元指数'],
1704
1705
 
1706
+ ['XAUUSD','1盎司黄金现货兑美元'],['XAUCNY','1盎司黄金现货兑人民币'],
1707
+
1705
1708
  #经济体基准利率
1706
1709
  ['INRTAU.M','澳大利亚基准利率'],
1707
1710
  ['INRTBR.M','巴西基准利率'],
@@ -2051,7 +2054,7 @@ def codetranslate1(code):
2051
2054
 
2052
2055
  ["SPY",'SPDR SP500 ETF'],['SPYD','SPDR SP500 Div ETF'],
2053
2056
  ["SPYG",'SPDR SP500 Growth ETF'],['SPYV','SPDR SP500 Value ETF'],
2054
- ["GLD",'SPDR黄金ETF'],
2057
+ ["GLD",'SPDR Gold Shares ETF'],
2055
2058
  ["VOO",'Vanguard SP500 ETF'],['VOOG','Vanguard SP500 Growth ETF'],
2056
2059
  ["VOOV",'Vanguard SP500 Value ETF'],['IVV','iShares SP500 ETF'],
2057
2060
  ["DGT",'SPDR Global Dow ETF'],['ICF','iShares C&S REIT ETF'],
@@ -2186,6 +2189,8 @@ def codetranslate1(code):
2186
2189
  ['U11.SI','UOB(SI)'],['C6L.SI','Singapore Airlines(SI)'],['CC3.SI','Starhub(SI)'],
2187
2190
  ['S08.SI','Singpost(SI)'],['F34.SI','WILMAR(SI)'],['C31.SI','CapitaLand(SI)'],
2188
2191
 
2192
+ ['XAUUSD','Gold(ozt)->USD'],['XAUCNY','Gold(ozt)->RMB'],
2193
+
2189
2194
 
2190
2195
  ], columns=['code','codename'])
2191
2196
 
@@ -3398,6 +3403,7 @@ def ticker1_name(ticker,ticker_type='auto'):
3398
3403
  #==============================================================================
3399
3404
  if __name__=='__main__':
3400
3405
  ticker='600519.SS' #股票
3406
+ ticker='XAUUSD' #一盎司黄金的美元价格
3401
3407
  ticker={'Market':('US','^SPX','中概教培组合'),'EDU':0.5,'TAL':0.3,'TEDU':0.2}
3402
3408
  pf={'Market':('US','^SPX','中概教培组合'),'EDU':0.5,'TAL':0.3,'TEDU':0.2}
3403
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,7 +523,7 @@ 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', \
@@ -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)
@@ -620,9 +657,67 @@ def stooq_name1(stock_code,add_suffix=True):
620
657
  if sid not in ['CN','US']:
621
658
  t_name=t_name+'('+sid+')'
622
659
 
660
+ t_name=t_name.strip()
661
+
623
662
  return t_name
624
663
 
625
664
  #==============================================================================
665
+ #==============================================================================
666
+ if __name__ == '__main__':
667
+ stock_code='AAPL'
668
+ stock_code='600519.SS'
669
+ stock_code='6758.T'
670
+ stock_code='6758.JP'
671
+ stock_code='ULVR.L'
672
+ stock_code='1155.KL'
673
+ stock_code='MSFT'
674
+
675
+ stock_code='GC=F'
676
+ stock_code='XAUUSD'
677
+
678
+ yahoo_name1(stock_code)
679
+
680
+
681
+ def yahoo_name1(stock_code):
682
+
683
+ import requests
684
+ from bs4 import BeautifulSoup
685
+
686
+ stock_code1=stock_code.lower()
687
+
688
+ #抓取证券名称
689
+ headers = {
690
+ "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"
691
+ }
692
+ url = f"https://finance.yahoo.com/quote/{stock_code1}"
693
+ response = requests.get(url,headers=headers)
694
+ if response.status_code == 200:
695
+ soup = BeautifulSoup(response.text, 'html.parser')
696
+ soup_title=soup.title
697
+ soup_text=soup_title.text
698
+
699
+ stock_code2=stock_code1.upper()
700
+ try:
701
+ pos=soup_text.index(stock_code2)
702
+ except:
703
+ pass
704
+ return stock_code
705
+ t_name = soup_text[:pos-1].strip()
706
+ else:
707
+ pass
708
+ return stock_code
709
+
710
+ #过滤名称中多余的尾部词汇
711
+ t_name=filter_stock_name(t_name).strip()
712
+ t_name=filter_stock_name(t_name).strip()
713
+
714
+ return t_name
715
+
716
+ #==============================================================================
717
+
718
+
719
+
720
+
626
721
  if __name__=='__main__':
627
722
  ticker='1155.KL'
628
723
  ticker='MSFT'
@@ -646,6 +741,9 @@ if __name__=='__main__':
646
741
 
647
742
  ticker='IBM'
648
743
 
744
+ ticker='XAUUSD'
745
+ short_name=False;add_suffix=True;maxlen=80
746
+
649
747
  get_stock_name1_en(ticker)
650
748
 
651
749
  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.22
3
+ Version: 3.7.24
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=u5Q24UXX6jstkemvo-owK5v3akNNHyrRuwXjjQwJsjk,175935
22
+ siat/common.py,sha256=JZyGEXHevW6NovmfvrMCR5fwVovO8d_wRb7MLHFiBvM,179306
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
- siat/security_trend2.py,sha256=mamJtFAbXC1orGgMEmp0taPk-yUqWm-jdGf64bjhn2Q,29756
108
+ siat/security_trend2.py,sha256=TmfPG5RqT2nzJpYwBYCFrD-NC82uaz8MxbAMmGVdJzY,29995
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=YXHl0NBnfW9mIcir-B0HKusE-tUY39J_xZP8pObpCc0,251612
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=yHUKjnflqI0RKVKOKlxR3o_ecQrSC8U5waLrOCgFN7I,21250
146
- siat-3.7.22.dist-info/LICENSE,sha256=NTEMMROY9_4U1szoKC3N2BLHcDd_o5uTgqdVH8tbApw,1071
147
- siat-3.7.22.dist-info/METADATA,sha256=aRDquaNWM6rLqZ_Nsj26vRnCoNf6qmtfn84Qppb4VaY,8117
148
- siat-3.7.22.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
149
- siat-3.7.22.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
150
- siat-3.7.22.dist-info/RECORD,,
145
+ siat/yf_name.py,sha256=laNKMTZ9hdenGX3IZ7G0a2RLBKEWtUQJFY9CWuk_fp8,24058
146
+ siat-3.7.24.dist-info/LICENSE,sha256=NTEMMROY9_4U1szoKC3N2BLHcDd_o5uTgqdVH8tbApw,1071
147
+ siat-3.7.24.dist-info/METADATA,sha256=hBqKjbbQcLQQWREZYGZNHB5Ge5n1A-wdUI178kn2z6E,8117
148
+ siat-3.7.24.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
149
+ siat-3.7.24.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
150
+ siat-3.7.24.dist-info/RECORD,,
File without changes
File without changes