
    fi	                         d Z ddlZddlZddlZddlmZmZ ddlZddl	m
Z
 ddlmZ ddeded	efd
Zdej        dee         dej        fdZdS )u0   
Date: 2025/3/10 18:00
Desc: 通用帮助函数
    N)ListDict)request_with_retry)get_tqdm   urlbase_paramstimeoutc                    |                                 }t          | ||          }|                                }t          |d         d                   }t	          j        |d         d         |z            }g }|                    t          j        |d         d                              t                      }	 |	t          d|dz             d          D ]}
|                    d	|
i           t          j        t          j        d
d                     t          | ||          }|                                }t          j        |d         d                   }|                    |           t          j        |d          }t          j        |d         d          |d<   |                    dgddd           |                    d           |d                             t*                    dz   |d<   |S )uc  
    东方财富-分页获取数据并合并结果
    https://quote.eastmoney.com/f1.html?newcode=0.000001
    :param url: 股票代码
    :type url: str
    :param base_params: 基础请求参数
    :type base_params: dict
    :param timeout: 请求超时时间
    :type timeout: str
    :return: 合并后的数据
    :rtype: pandas.DataFrame
    )paramsr
   datadifftotal      F)leavepng      ?g      ?T)ignore_indexf3coerce)errors)by	ascendinginplacer   )r   index)copyr   jsonlenmathceilappendpd	DataFramer   rangeupdatetimesleeprandomuniformconcat
to_numericsort_valuesreset_indexastypeint)r   r	   r
   r   r	data_jsonper_page_num
total_page	temp_listtqdmpageinner_temp_dftemp_dfs                =/usr/local/lib/python3.11/dist-packages/akshare/utils/func.pyfetch_paginated_datar:      s    F3vw???AIy(011L9V,W5DEEJIR\)F"3F";<<===::DU1j1n--U;;; ( (tTl###
6>#s++,,,s67CCCFFHH	Yv%6v%>??''''i	555GM'$-AAAGDMD6UDtTTT%%%w'..s33a7GGN    dfcolsreturnc                 V    | j         dk    rt          j        g |          S || _        | S )u   
    设置 pandas.DataFrame 为空的情况
    :param df: 需要设置命名的数据框
    :type df: pandas.DataFrame
    :param cols: 字段的列表
    :type cols: list
    :return: 重新设置后的数据
    :rtype: pandas.DataFrame
    )r   r   )r   columns)shaper"   r#   r@   )r<   r=   s     r9   set_df_columnsrB   ?   s2     
x6|T2222
	r;   )r   )__doc__r   r(   r&   typingr   r   pandasr"   akshare.utils.requestr   akshare.utils.tqdmr   strr/   r:   r#   rB    r;   r9   <module>rJ      s    
                4 4 4 4 4 4 ' ' ' ' ' '* *c * *s * * * *Zr| 49       r;   