
    fi
                         d Z ddlZddlZddlmZ ddlmZ ddlm	Z	  e	            dej
        fd            Zdd	edej
        fd
Zedk    r ed          Z ee           dS dS )u_   
Date: 2025/6/16 18:00
Desc: 唯爱期货-期权保证金
https://www.iweiai.com/qihuo/yuanyou
    N)StringIO)BeautifulSoup)	lru_cachereturnc                  "   d} t          j        |           }t          |j        d          }d |                    d          D             }d |                    d          D             }t          j        ||g          j        }ddg|_        |S )	u}   
    获取商品期权品种代码和名称
    :return: 商品期权品种代码和名称
    :rtype: pandas.DataFrame
    z%https://www.iweiai.com/qiquan/yuanyoulxmlfeaturesc                 J    g | ] }d |d         v |                                 !S qiquanhref)get_text.0items     G/usr/local/lib/python3.11/dist-packages/akshare/option/option_margin.py
<listcomp>z(option_margin_symbol.<locals>.<listcomp>   s5        (d6l:R:R:R:R:R    ac                 2    g | ]}d |d         v |d         S r    r   s     r   r   z(option_margin_symbol.<locals>.<listcomp>   s1       x4<7O7OV7O7O7Or   symbolurl)	requestsgetr   contentfind_allpd	DataFrameTcolumns)r   rsoupsymbol_text
symbol_url	symbol_dfs         r   option_margin_symbolr(      s     2CSAV444D $(MM#$6$6  K !%s!3!3  J k:6779I!5)Ir      原油期权r   c                    t                      }||d         | k             d         j        d         }t          j        |          }t	          |j        d          }|                    d          d                                                             d          }t          j
        t          |j                            d         }||d<   t          j        |d	         d
          |d	<   t          j        |d         d
          |d<   t          j        |d         d
          |d<   t          j        |d         d
          |d<   t          j        |d         d
          |d<   t          j        |d         d
          |d<   t          j        |d         d
          |d<   t          j        |d         d
          |d<   |S )u  
    获取商品期权保证金
    :param symbol: 商品期权品种名称, 如 "原油期权"，可以通过 ak.option_margin_symbol() 获取所有商品期权品种代码和名称
    :type symbol: str
    :return: 商品期权保证金
    :rtype: pandas.DataFrame
    r   r   r   r   r	   smallu   最近更新：u   更新时间u	   结算价coerce)errorsu   交易乘数u   买方权利金u   卖方保证金u   开仓手续费u   平今手续费u   平昨手续费u   手续费(开+平今))r(   valuesr   r   r   r   r   r   stripr   	read_htmlr   text
to_numeric)r   option_margin_symbol_dfr   r#   r$   updated_timetemp_dfs          r   option_marginr6   &   s    344
!"9("Cv"M
NQC 	SAV444D==))!,5577==>OPPLl8AF++,,Q/G*GN=)=hOOOGK mGN,CHUUUGN!#w7H/IRZ![![![G!#w7H/IRZ![![![G!#w7H/IRZ![![![G!#w7H/IRZ![![![G!#w7H/IRZ![![![G')}'(( ( (G#$ Nr   __main__)r   )r)   )__doc__r   pandasr   ior   bs4r   	functoolsr   r    r(   strr6   __name__option_margin_dfprintr   r   r   <module>rA      s                            bl    ( # 2<    > z$}N;;;	E
 r   