hxp
2025-06-12 59331b7135fb10c24382d76fb0a3d721dddca7ee
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Sð    hc@sXdZddlZddlZddlZddlZdZgZdZdZdZ    dZ
de ge dƒD]Z d    ejƒe ^qmƒZejƒd
Zd „Zedd ejƒƒd „Zd„Zd„Zd„Zd„Zd„Zd„Zdfd„ƒYZdfd„ƒYZdfd„ƒYZded„Zed„Z dS(sVersion = 2010-11-03 10:00iÿÿÿÿNt
PyTrackObjiiislog%s%s%s%s%s%s.txtis%02ds\log\cGsdtgtdƒD]}dtjƒ|^qƒ}xStdt|ƒƒD]<}||}|dtt|ƒƒdt|ƒd7}qMWtjj    t
ƒs¯tj t
ƒntjj t
t ƒrÛtt
t dƒ}ntt
t d    ƒ}|jd
t|d ƒ|d ƒ|jƒdS( Ns[%s%s%s%s%s%s]is%02dis( s:s ),tatws    is
(ttupletrangettimet    localtimetlentstrttypetostpathtisdirtLOG_PATHtmkdirtisfiletNOW_TIMEtopentfiletwritetinttclose(tvarlisttitinfotcurValuetlogfile((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytLogEx4s7
0#s
CurPath=%scCsˆxtj|ƒD]p}|d|}tjj|ƒrI||krI|Sntjj|ƒrt||ƒ}|dkr|SqqqWdS(Ns\t(R
tlistdirR RR t GetFilePath(R tfilenametdirtcurPathttempPath((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRMs  
cCs9x2tt|ƒƒD]}|||kr|| SqW|S(N(RR(tlinetcharListR((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytGetSplitFirstByCharhs cCs¼|jdƒdjƒ}|dkr)tS|jdƒsV|jdƒsV|jdƒrZtSd    d
d g}t||ƒ}|d krˆtS|d kr˜tS|dkr¨tS|dkr¸tStS(Ns#is(s[s{s)s]s}s s    s
tglobaltbreakselse:tpass(s(s[s{(tsplittstriptTruet
startswithR%tFalse(t
rowContentR$((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytIsLineNeedIgnoreus  -    cCs4|j|jkrdS|j|jkr,dSdSdS(Niiÿÿÿÿi(t
startIndex(txty((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt
FuncObjCmp¢s
cCs`d}x@|D]8}|ddkr |||ddjdƒ7}q q Wtj||ƒjƒS(NRiiis (trstriptmd5t    hexdigest(t contentListt execRowListtMD5KeytmdstrtrowInfo((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt CalcFuncMD5²s
 &cCs|jdƒ}t||ƒS(Ns
(R)t CalcListMD5(t reportStringR9R7((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt CalcStringMD5ÃscCsVd}x6|D].}|jddƒ}||jddƒ7}q Wtj||ƒjƒS(NRs
s (treplaceR5R6(t
reportListR9R:R#((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR=Ñs
 tPyObjcBsÅeZdded„Zd„Zdd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z eed „Zd „Zd„Zd„Zd„Zd„Zd„Zd„ZRS(RcCsk||_g|_g|_d|_d|_t|_t|_d|_    ||_
|rg|j |ƒndS(NiR( tpyNamet funcObjListR7t pyExecCountt pyTotalCountR+t isPyFileExistR-t
isTrackingtMD5R9t CreateFuncObj(tselfRCR9t
scriptPathtisCreate((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt__init__ês                                    c    Csat||jƒ}|dkrAtdd||jƒt|_dSt|d|jdƒ}|jƒ|_|jƒt}t}t}d}d}d}    d}
d} g} d} d}|j}x›t    t
|ƒdƒD]ƒ}|t
|ƒkrè|räxbt    | dddƒD]J}||j ƒj d    ƒr8||}
Pn||j ƒj d
ƒs Pq q Wt}d}|j | 7_ t|| |jƒ}t|    ||
| | ||ƒ}|jj|ƒd}d} g} d}
d} d}t}nPn||jƒj d    ƒr0| j|d|d| d||gƒqÖn||jƒ}|jdƒr¥||||jdƒ d ||dj ƒ||<d ||d<||jƒ}nt
|ƒdkrë|rÖ| j|d|d| d d gƒqÖqÖn|j d
ƒr)| j|d|d| d||gƒqÖn|j dƒr¡xbt    | dddƒD]J}||j ƒj d    ƒr|||}
Pn||j ƒj d
ƒsOPqOqOW|r(d}|j | 7_ t|| |jƒ}t|    ||
| | ||ƒ}|jj|ƒd}d} g} d}
d} d}t}n|jdƒ}|d|!tkrPqÖnt}|d} ||jdƒ}|dkrŽt}d}    n|d|!}qÖn||j dƒrÅ|rt}d}|j | 7_ xUt    | dddƒD]=}||j dƒr||}
n||j d
ƒsìPqìqìWt|| |jƒ}t|    ||
| | ||ƒ}|jj|ƒd}d} g} d}
d} d}t}nt}|jdƒ}|d|!}    qÖn|rÖ||j|dƒ|krËt}d}|j | 7_ xUt    | dddƒD]=}||j dƒr@||}
n||j d
ƒsPqqWt|| |jƒ}t|    ||
| | ||ƒ}|jj|ƒd}d} g} d}
d} d}t}qY|rÞ| rÞqÖn|d}t|ƒr#| j|d|d| d||gƒqÖn| d7} | j|d|d| d||gƒqÖqÖWdS(NRisself.isPyFileExist = Falses\triiiÿÿÿÿs##s#s s
isdef s(itdefsclass s## s:i(RRCRR-RGRt    readlinesR7RRRtlstripR,RFR<R9tFuncObjRDtappendR*tendswithtrfindtfindtIGNORE_FUNC_LISTR+R/(RKRLR"RtisFindFuncHeadtisFindClassHeadtisFindingCommentR0tfuncNamet    classNamet funcCommenttrowCounttrowListt rowStartIndext rowEndIndexR7RtjRIt tempFuncObjttemptendIndex((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRJýs     
    
    )5()
    
                  
 )
cCsFx?|jD]4}||jkr
|r:|j|kr:q
n|Sq
WdS(N(RDR\R]tNone(RKR\R]tfuncObj((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt FindFuncObjÞs cCs@|j|ƒ}|r<|j||ƒr<|jd7_q<ndS(Ni(RitUpdateRowStateRE(RKR\trowIndext returnValueRd((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytUpdateFuncStateðscCs|jS(N(RC(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytGetNameÿscCs|jS(N(RH(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt
IsTrackingscCs ||_dS(N(RH(RKRH((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytSetTrackscCs(x!|jƒD]}|j|ƒq WdS(N(tGetFuncObjListRp(RKRHRh((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytSetAllFuncTrackscCs.|j|j|j|j|j|j|jfS(N(RCRDR7RERFRGRH(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt    GetPyInfo%scCs.g}x!|jD]}|j|jƒqW|S(N(RDRTR\(RKt funcNameListRh((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytGetFuncNameList5scCs|jS(N(RD(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRqBsc        CsL||_||_||_||_||_||_||_||_dS(N(RCRDR7RERFRIt pyFileExistRH(    RKRCRERFRDR7RIRGRH((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt    SetPyInfoRs                            cCsfd|_d|_xA|jD]6}|jƒ\}}|j|7_|j|7_qW|j|jfS(Ni(RERFRDtCalcRowExecCount(RKRht funcExecCounttfuncTotalCount((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytCalcFuncExecCountcs        cCs+|jdkrdSt|jƒ|jdS(Nigid(RFtfloatRE(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytGetExecPercentuscCs|j|jfS(N(RERF(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytGetExecRowCount€sc CsÁ|j|jƒkr¸|j|j|jƒ}|jƒ|jƒkrftdd|j|jfƒdS|j|j8_|j    |j
8_    |j }|j }|j }|jj|ƒn|j }|j }t}||j kr^|j |j |}i}xV|jjƒD]E}|jƒ}    |    d|}
t|
|    d|    d|    dƒ||
<q    W||_n||_ ||_ ||_ |jj|ƒ|j|j7_|j    |j
7_    |jjtƒdS(Nis%s -> %s:MD5 Differiii(R\RuRiR]tGetMD5RRCREt execRowCountRFt totalRowCountR0RfRHRDtremoveR-t
rowObjDicttvaluest
GetRowInfotRowObjRTtsortR3( RKRhttempObjtfuncStartIndext funcEndIndexRHtoffSetttempRowObjDicttrowObjt rowInfoListt    lineIndex((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt
AddFuncObjŠs<                      )             cCsvxo|jD]d}|j|j|jƒ}|s4q
n|jƒ|j|j|jƒjƒkr
|j|ƒq
q
WdS(N(RDRiR\R]R}R(RKtpyObjRhRd((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytAddPyObjÅs *c
Cs+|jsd|jSd}d}|rq|j|ƒ}|r×|jsP|tkr×|j|j|ƒ\}}q×nfxc|jD]X}|tkr®|jsœq{n|js®q{q®n|j|j|ƒ\}}    ||    7}q{W|j    dkrt
dd|jƒd|j|df}
nMd    |j}
|
d
|j |j    f7}
|
d |j ƒ7}
|
d |d7}
|t kr#|js‘t|j|jƒ|_n|d |d|jf7}t|
|||jƒ} |d|d| |df7}|dtgtdƒD]} dtjƒ| ^qûƒ7}n|
|S(Ns¡¾%s¡¿Create Report Fail
Rs
iisPyTotalRowsCount Zero:%ss%¡¾%s¡¿ state:[0/0]  percent:[100%%]%sis¡¾%s¡¿ sstate:[%s/%s]  spercent:[%0.02f%%]  s%ss%sPyÎļþMD5:[%s]s%s²âÊÔ±¨¸æMD5:[%s]%ss±£´æÊ±¼ä:[%s-%s-%s %s:%s:%s]is%02d(RGRCRiRHtFILE_TRACK_MODEt GetFuncReportR7RDtFUNC_TRACK_MODERFRRER}tFILE_OUTPUT_MODERIR=R9R?RRRR( RKR\t    trackModet
outputModet
tempReporttCRLFRhRyt    execCountt    funReporttpyReportt    reportMD5R((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt GetTestReportÖs>     !                   >cCs4d|_t|_x|jD]}|jƒqWdS(Ni(RER-RHRDt
ClearState(RKRh((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR s        (t__name__t
__module__R+RNRJRiRmRnRoRpRrRsRuRqR-RwR{R}R~RR’RŸR (((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRBás&        á                                                            
    ;        >RScBs}eZd d„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d e d    „Z d
„Zd „ZRS( c        Cs~||_||_||_d|_d|_i|_||_||_||_t    |_
||_ |j |ƒ|j ƒdS(Ni(R]R\R^R€RRƒRlR0RfR-RHRIt CreateRowInfoRx(    RKR]R\R^RŽR0RfRIRl((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRN-s                                             cCsKxD|D]<}t|d|d|d|dƒ}||j|d<qWdS(Niiii(R†Rƒ(RKR;Rt
tempRowObj((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR£Bs %cCsŒd|_d|_xg|jjƒD]V}|jƒddkrP|jd7_n|jƒddkr"|jd7_q"q"W|j|jfS(Niii(R€RRƒR„R…(RKR((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRxOs        cCsH||_|jj|ƒrD|j|jƒrD|jd7_tSntS(Ni(RlRƒthas_keytChangeRowStateR€R+R-(RKRkRl((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRjbs     cCs|jS(N(R\(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRnsscCs|jS(N(RI(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR|scCs+|jdkrdSt|jƒ|jdS(Nigid(RR|R€(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR}…scCs ||_dS(N(RH(RKRH((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRpsc CsF|j|j|j|j|j|j|j|j|j|j    |j
f S(N( R]R\R^R€RRƒRlR0RfRHRI(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt GetFuncInfo™sc Csg||_||_||_||_||_||_|
|_||_||_|    |_    | |_
dS(N( R]R\R^R€Rt
rowObjListRlR0RfRIRH( RKR]R\R^R€RR¨R0RfRIRlRH((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt SetFuncInfo·s                                        c Csld}d}|jr.||jjdƒ7}n|d|j|7}|jdkrtdd|jƒ|jr”|d|j7}|d|j7}n|d    7}|d
|j7}|d |j|jf7}|d |j    7}|d t
|j    ƒ|f7}d|fS|jr)|d|jd|j7}n|d    d|j7}|d|j |jf7}|dt |j ƒ|jd7}|d |j|jf7}|d |j    7}|d t
|j    ƒ|f7}d}t |ƒd}x$|dkrþ|d}|d7}qÛWdt|ƒd}x?t|j|jƒD](}|jj|dƒr)|j|djƒd}    |j|djƒd}
|    dkr³|d||d|
jdƒf|7}qQ|    dkr
|d7}|tkrâ|d7}n|||d|
jdƒf|7}qQt |
jƒƒdkrQ|d||d|
jdƒf|7}qQq)q)W||7}|j |fS(NRs
s     MD5:[%s]iisFuncRows Zero:%ss        [%s]:s%:<%s>  state:[0/0]  percent:[100%%]  s     [Func]:s% <%s>  state:[0/0]  percent:[100%%]  srange:[%d:%d]  sreturnValue:[%s]  s type:[%s]%ss:<%s>  s <%s>  sstate:[%s/%s]  spercent:[%0.02f%%]  idi
s[%0sd] %siis        s*      s (R^R*RIRRR\R]R0RfRlR    R€R|RRRRƒR¥R…R–( RKR7R˜t
funcReportRštcounttnumt formatStringRtstatetsentance((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR”ÌsZ        
 
    "
 , 
  (3
cCsCd|_d|_t|_x!|jjƒD]}|jƒq+WdS(Ni(R€RgRlR-RHRƒR„R (RKR((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR ,s
            N(R¡R¢RgRNR£RxRjRnRR}RpR§R-R©R”R (((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRS s                                                   `R†cBs,eZd„Zd„Zd„Zd„ZRS(cCs(||_||_||_||_dS(N(tindextoffsetR®tcontent(RKRkt    rowOffsettrowStateR²((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyRNBs            cCs |jdkrd|_tStS(Nii(R®R+R-(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR¦Ms    cCs|j|j|j|jfS(N(R°R±R®R²(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR…YscCs d|_dS(Ni(R®(RK((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR as(R¡R¢RNR¦R…R (((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyR†9s                  RcCst||||ƒS(N(RB(RCR9RLRM((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pytGetPyObjnsc    Cst||||||||ƒS(N(RS(R]R\R^RŽR0RfRIRl((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt
GetFuncObj~s(!t__doc__R
RR5t    tracebackt    FORM_NAMERXR“R•tUI_OUTPUT_MODER–RRRRRtgetcwdR RRR%R/R3R<R?R=RBRSR†R+RµRgR¶(((sG.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\PyTrackObj.pyt<module>s:    7                 -                ÿÿAÿ5