admin
2025-06-04 287c506725b2d970f721f80169f83c2418cb0991
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
B
ˆ"Édiã@sdZddlZddlZddlZddlZddlZddlmZddlZdd„Z    dd„Z
dd    „Z d6d d „Z d7d d„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd8d0d1„Zed2kr e ed3ƒƒGd4d5„d5ƒZ!dS)9u
常用工具
éN)ÚThreadcs‡fdd„}|S)Ncstˆ||d ¡dS)N)ÚtargetÚargsÚkwargs)rÚstart)rr)Úfn©ú.D:\workspace\GP\gp_middle_server\utils\tool.pyÚwrapperszasync_call.<locals>.wrapperr)rr
r)rr    Ú
async_calls r cCs`tt ¡ƒ}tt ¡ƒd}t dt |¡¡}tt t |d¡¡ƒ}||}|t dd¡7}|S)Ni€Qz%Y-%m-%dri)    ÚintÚtÚtimeÚstrftimeÚ    localtimeÚmktimeÚstrptimeÚrandomÚrandint)ÚnowÚendZ
local_timeÚexpirerrr    Ú
get_expires rcCstj ¡}|S)N)Údatetimer)Údaterrr    Ú get_now_date s
rú%Y-%m-%dcCstj ¡ |¡}|S)N)rrr)Úformatrrrr    Úget_now_date_str%srcCs8t t ||¡¡}||ddd8}t |t |¡¡S)Néé<)rrrrr r)Zdate_strÚdayrZt_rrr    Údate_sub+sr"cCstj ¡ d¡}|S)Nz%H:%M:%S)rrr)Útime_strrrr    Úget_now_time_str1sr$cCstj ¡ d¡}|S)Nz%Y-%m-%d %H:%M:%S)rrr)r#rrr    Úget_now_datetime_str6sr%cCstt ¡dƒS)Niè)Úroundrrrrr    Úget_now_timestamp;sr'cCs| t d¡tj¡S)Nz0.00)ÚquantizeÚdecimalÚDecimalÚ ROUND_HALF_UP)Ú_decimalrrr    Úto_price@sr-cCsdtjr
dSt ¡dd}d}d}d}d}||kr>|ksXn||krT|kr\nndSdSdS)    NTi€Qi€pi0„iô¡iX¶i,ÓF)ÚconstantÚTESTr r)Úrelative_timestampÚstart1Úend1Ústart2Úend2rrr    Ú is_trade_timeEs.r5cCsZt ¡dd}d}d}d}d}||kr4|ksNn||krJ|krRnndSdSdS)    Ni€Qi€pi\…i|¡iжiˆÑTF)r r)r0r1r2r3r4rrr    Ú is_alert_timeVs.r6cCsZt ¡dd}d}d}d}d}||kr4|ksNn||krJ|krRnndSdSdS)    Ni€Qi€pi\…i|¡iжiðÒTF)r r)r0r1r2r3r4rrr    Úis_repaire_timecs.r7cCs<t ¡dd}d}d}||kr,|kr4nndSdSdS)Ni€Qi€pi˜…i,ÓFT)r r)r0r1r2rrr    Ú is_init_timeps r8cCsdtjr
dSt ¡dd}d}d}d}d}||kr>|ksXn||krT|kr\nndSdSdS)    NTi€Qi€pi؁iä¢ix´iÔF)r.r/r r)r0r1r2r3r4rrr    Úis_set_code_timezs.r9cCs dd„}|S)Ncs‡fdd„}|S)Ncs:tt ¡dƒ}ˆ|f|Ž}tdtt ¡dƒ|ƒ|S)Nièu 执行时间)r&rÚprint)rrrÚresult)Úfuncrr    ÚinfuncŒs z+run_time.<locals>.decorator.<locals>.infuncr)r<r=r)r<r    Ú    decorator‹s zrun_time.<locals>.decoratorr)r>rrr    Úrun_timeŠs    r?cCs6| d¡}t|dƒdt|dƒdt|dƒS)Nú:riér é)Úsplitr )r#Útsrrr    Úget_time_as_second—s
rEcCs*|d}|dd}|d}d |||¡S)Nir z{0:0>2}:{1:0>2}:{2:0>2})r)ÚsecondsÚhÚmÚsrrr    Útime_seconds_formats rJcCsbtdƒ}t|ƒ}t|ƒ}||kr,|kr:nn
|d}n ||krN|krZnn|d}||S)Nz11:30:00i)rE)Z
time_str_1Z
time_str_2Z
split_timeZtime_1Ztime_2rrr    Útrade_time_sub¦s
rKcCsf| d¡}t|dƒdt|dƒdt|dƒ}||}|dkrR|kr^nn|d7}t|ƒS)    Nr@rirAr rBi¸¡i)rCr rJ)r#ÚsecondrDZs_rIrrr    Útrade_time_add_second³s 
,rMcCsR| d¡}t|dƒdt|dƒdt|dƒ}|dd}t|d|ƒS)Nr@rirAr rBé)rCr rJ)Ztime_rDrIZcharrr    Úcompute_buy1_real_time½s
, rOcCsXd}xN|D]F}t|ƒ}|dkr$d}n d|kr8dkrDnn|d8}|t|ƒ7}q
W|S)NÚi0é iÿi^ÿiàþ)ÚordÚchr)ZustringZrstringZucharZ inside_coderrr    ÚstrQ2BÅs
rTú%H:%M:%ScCstj |¡ |¡S)N)rÚ fromtimestampr)Ztimestamp_secondÚformat_rrr    Ú to_time_strÒsrXÚ__main__iH¹ac@s0eZdZedd„ƒZedd„ƒZedd„ƒZdS)ÚCodeDataCacheUtilcCs||kr| |¡dS)N)Úpop)ÚclsÚ
cache_dictÚcoderrr    Ú clear_cacheßszCodeDataCacheUtil.clear_cachecCs |||<dS)Nr)r\r]r^Údatarrr    Ú    set_cacheäszCodeDataCacheUtil.set_cachecCs||krd| |¡fSdS)NT)FN)Úget)r\r]r^rrr    Ú    get_cacheèszCodeDataCacheUtil.get_cacheN)Ú__name__Ú
__module__Ú __qualname__Ú classmethodr_rarcrrrr    rZÝs  rZ)r)r)rU)"Ú__doc__r)rrr rÚ    threadingrr.r rrrr"r$r%r'r-r5r6r7r8r9r?rErJrKrMrOrTrXrdr:rZrrrr    Ú<module>s@