+
    Ȝi                         R t ^ RIt^ RIt^ RIt^ RItRtRtRtRtRt	Rt
RtR	tR
tRtRtRtRR/tRR/tRtRtRtRtRR/t]P0                  ! R4      tR tR tR tR tR t]R8X  d(   ]P                  ! R^
^^^^ 4      t ]!! ]! ] 4      4       R# R# )u0   
Date: 2019/9/30 13:58
Desc: 期权配置文件
Nz$http://www.cffex.com.cn/quote_IO.txtzohttp://www.szse.cn/api/report/ShowReport?SHOWTYPE=xlsx&CATALOGID=ysplbrb&TABKEY=tab1&random=0.10432465776720479z5http://yunhq.sse.com.cn:32041/v1/sh1/list/self/510050z:http://yunhq.sse.com.cn:32041/v1/sho/list/tstyle/510050_{}z5http://yunhq.sse.com.cn:32041/v1/sh1/list/self/510300z:http://yunhq.sse.com.cn:32041/v1/sho/list/tstyle/510300_{}z5http://yunhq.sse.com.cn:32041/v1/sh1/list/self/510500z:http://yunhq.sse.com.cn:32041/v1/sho/list/tstyle/510500_{}z5http://yunhq.sse.com.cn:32041/v1/sh1/list/self/588000z:http://yunhq.sse.com.cn:32041/v1/sho/list/tstyle/588000_{}z5http://yunhq.sse.com.cn:32041/v1/sh1/list/self/588080z:http://yunhq.sse.com.cn:32041/v1/sho/list/tstyle/588080_{}selectzHselect: code,name,last,change,chg_rate,amp_rate,volume,amount,prev_closez'contractid,last,chg_rate,presetpx,exepxz>http://portal.dce.com.cn/publicweb/quotesdata/dayQuotesCh.htmlzHhttp://portal.dce.com.cn/publicweb/quotesdata/exportDayQuotesChData.htmlz;https://tsite.shfe.com.cn/data/dailydata/option/kx/kx{}.datzIhttp://www.czce.com.cn/cn/DFSStaticFiles/Option/{}/{}/OptionDataDaily.txtz
User-Agentz.Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)z)^([0-9]{4})[-/]?([0-9]{2})[-/]?([0-9]{2})c                   \        V \        P                  4      '       d   V # \        V \        4      '       d   \        P                  V 4      pV'       dj   VP                  4       p\        V4      ^8X  dJ   \        P                  ! \        V^ ,          4      \        V^,          4      \        V^,          4      R7      # R# )z
transform a date string to datetime.date object
:param date, string, e.g. 2016-01-01, 20160101 or 2016/01/01
:return: object of datetime.date(such as 2016-01-01) or None
)yearmonthdayN)	
isinstancedatetimedatestrDATE_PATTERNmatchgroupslenint)r	   r   r   s   &  \/Users/mibo/.openclaw/workspace/.venv-ak/lib/python3.14/site-packages/akshare/option/cons.pyconvert_dater   A   s     $&&	D#		""4(\\^F6{a}}VAYs6!9~3vay>      c                    \         P                  P                  \         P                  P                  \         P                  P                  V4      4      4      p\         P                  P	                  VRV 4      pV# )u   
获取 JSON 配置文件的路径(从模块所在目录查找)
:param name: 文件名
:param module_file: filename
:return: str json_file_path
	file_fold)ospathabspathdirnamejoin)namemodule_filemodule_foldermodule_json_paths   &&  r   get_json_pathr   T   sM     GGOOBGGOOBGGOOK4P$QRMww||M;Er   c                 f    Rp \        V \        4      p\        P                  ! \	        VR4      4      # )u]   
获取交易日历至 2019 年结束, 这里的交易日历需要按年更新
:return: json
zcalendar.jsonr)r   __file__jsonloadopen)setting_file_namesetting_file_paths     r   get_calendarr'   `   s/    
 (%&7B99T+S122r   c                   \        4       p\        V \        4      '       d=   W9  d   \        RV ,           4       R# VP	                  V 4      pW^,
          ,          pV# \        V \
        P                  4      '       d|   V P                  R4      pWA9  d   \        RV,           4       R# VP	                  V4      pW^,
          ,          p\
        P
                  P                  VR4      P                  4       pV# R# )ur   
获取前一个交易日
:param day: "%Y%m%d" or  datetime.date()
:return last_day: "%Y%m%d" or  datetime.date()
u   Today is not trading day：F%Y%m%du   Today is not working day：N)	r'   r   r
   printindexr   r	   strftimestrptime)r   calendarposlast_dayd_strs   &    r   last_trading_dayr2   j   s     ~H#s/#56nnS!!G$	C	'	'X& /%78nnU#!G$$$--hAFFH 
(r   c                |   \        4       pV P                  R4      V9   dW   V P                  4       \        P                  ! ^^ ^ 4      8  d   V P                  R4      # \	        V P                  R4      4      # V P                  R4      V9  d!   V \        P
                  ! ^R7      ,
          p K6  V P                  R4      # )u\   
获取最新的有数据的交易日
:param day: datetime.datetime
:return string YYYYMMDD
r)   )days)r'   r,   timer   r2   	timedelta)r   r.   s   & r   get_latest_data_dater7      s     ~H
||H)88:b!Q//<<))#CLL$:;;ll8$H4**22C||H%%r   __main__i  )"__doc__r   r"   r   reCFFEX_OPTION_URL_300SZ_OPTION_URL_300SH_OPTION_URL_50SH_OPTION_URL_KING_50SH_OPTION_URL_300SH_OPTION_URL_KING_300SH_OPTION_URL_500SH_OPTION_URL_KING_500SH_OPTION_URL_KC_50SH_OPTION_URL_KC_KING_50SH_OPTION_URL_KC_50_YFDSH_OPTION_URL_KING_50_YFDSH_OPTION_PAYLOADSH_OPTION_PAYLOAD_OTHERDCE_OPTION_URLDCE_DAILY_OPTION_URLSHFE_OPTION_URLCZCE_DAILY_OPTION_URL_3SHFE_HEADERScompiler   r   r   r'   r2   r7   __name__dr*    r   r   <module>rR      s  
   	 	 >  F  K T K U K U M W Q X  X  $%NO  RN 
 P P 
 NOzzFG&	36&$ z$Ar1a0A	
q
!" r   