zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
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
126
127
128
129
130
131
132
133
134
135
136
137
U
­ý°dÎ|ã@slddlZddlZddlZddlmZmZmZmZm    Z    m
Z
m Z m Z ddl mZGdd„dƒZGdd„dƒZdS)éN)ÚCategoricalDtypeÚCategoricalIndexÚ    DataFrameÚ IntervalIndexÚ
MultiIndexÚ
RangeIndexÚSeriesÚ    Timestampc@sœeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z ej dddg¡dd„ƒZdd„Zej ddd g¡ej d!dd"d#d$gidd#d$d"gid ddd"d#gfdd"d#d$gidd"d$d#gidddd"d#gfdd"d#d$gidd#d$d"gid d d%d$d#gfdd"d#d$gidd"d$d#gidd d#d$d%gfg¡d&d'„ƒƒZej ddd g¡ej d(dd g¡d)d*„ƒƒZej ddd g¡ej d!d"d#gd$d+gd,œd"d#gd$d+gd,œdddd"gfd"d#gd$d+gd,œd#d"gd+d$gd,œd ddd"gfd"d#gd$d+gd,œd"d#gd$d+gd,œdd ejd-d.ged/ƒd0fd"d#gd$d+gd,œd#d"gd+d$gd,œd d ejd.d-ged/ƒd0fg¡d1d2„ƒƒZd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Zd=d>„Zd?d@„Zej dAdBdCdDdEgdFfd"d$d#d%gd+fe dGƒe dHƒe dIƒe dJƒge dKƒfdLdMdNdOgdPfg¡dQdR„ƒZ!ej dSej"dTdUdVgdWdXej"e# $dd"¡e# $d"d#¡e# $d#d$¡gdYdXg¡dZd[„ƒZ%ej d\d]dd]gd d^gg¡d_d`„ƒZ&dadb„Z'ej d\dcdd gg¡ddde„ƒZ(d]S)fÚTestDataFrameSortIndexc    Csîtdddddgitddgdd    ggd
d
ddgd
dd
dggd d }|j ¡sNt‚|jjrZt‚tdddddgitddgd    dggd
d
ddgd
dd
dggd d }| ¡}|jjs®t‚t ||¡| ¡     ¡}|j 
¡|_|jjsÞt‚t ||¡dS) NÚvalueééééÚaÚbZbbZaar©ÚlevelsÚcodes©Úindex) rrrÚ _is_lexsortedÚAssertionErrorÚis_monotonic_increasingÚ
sort_indexÚtmÚassert_frame_equalÚcopyZ_sort_levels_monotonic)ÚselfÚdfÚexpectedÚresult©r"úad:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/frame/methods/test_sort_index.pyÚ.test_sort_index_and_reconstruction_doc_examples.ÿþ ÿþ     zETestDataFrameSortIndex.test_sort_index_and_reconstruction_doc_examplec    Cs^tdgt ggg¡d}t d¡d|jd<d|jd<W5QRX| ¡jj}|dksZt    ‚dS)Nr©Úcolumnsrr )rÚ2)rÚ3T)
rrÚ from_productrZassert_produces_warningÚlocrrrr)rrr!r"r"r#Ú-test_sort_index_non_existent_label_multiindex/s  
 zDTestDataFrameSortIndex.test_sort_index_non_existent_label_multiindexcCs ttj dd¡tjddgddgddggd    d
d gd d dgd}| ¡}dd„}|jd    d
gd |¡ ¡}tjddgddgddggd    d
dgd }t     
|j |¡dS)Nér rrÚbigÚsmallÚredZbluÚletterÚsizeÚcolor©ÚnamesZnearZfar©rr&cSsddg|_|S)NÚnewzÚnewar)Úgroupr"r"r#Úmy_funcDs
zFTestDataFrameSortIndex.test_sort_index_reorder_on_ops.<locals>.my_func©Úlevelr7r6) rÚnpÚrandomÚrandnrr)rÚgroupbyÚapplyrÚassert_index_equalr)rrr9r!r r"r"r#Útest_sort_index_reorder_on_ops8s  þúþz5TestDataFrameSortIndex.test_sort_index_reorder_on_opscCsddgtjtjgtjdgddgg}t |¡}tt d¡ dd¡|tdƒd    }tt d¡|d
}tt     
d d d ddd dd ddddg ¡ddddddddddddg dtjddtjdddtjdddg dddddddtjd d!ddg d"œƒ  d#d$g¡}|  ¡}|j ddddgdd…f}t ||¡|j d%d&}|j ddddgdd…f}t ||¡|j d'd&}|j ddddgdd…f}t ||¡| ¡  ¡}|  ¡ ¡}t ||¡|  ¡}|j ddddg}t ||¡|j d%d&}|j ddddg}t ||¡|j d'd&}|j ddddg}t ||¡dS)(Né é rr r érÚABCDr5rZ20121002Z20121007Z20130130Z20130202Z20130305Z20121207éiþiiioéZi8i-igi!éé
éé'ré-é")ÚdateÚuser_idZ
whole_costZcostrOrPÚlast©Ú na_positionÚfirst)r<ÚnanrÚ from_tuplesrÚarangeÚreshapeÚlistrÚpdZ DatetimeIndexÚ    set_indexrÚilocrrZdropnaÚassert_series_equal)rZtuplesÚmirÚsÚdf2r!r r"r"r#Útest_sort_index_nan_multiindexPsx"
 ôÿôàÿ#Ý&            z5TestDataFrameSortIndex.test_sort_index_nan_multiindexc    Cs¸tddtjddddgdtjdddddgdœddd    dddtjgd
}|jd d d d}tddtjddddgdtjdddddgdœddd    dddtjgd
}t ||¡|jdd}tdddtjdddgddtjddddgdœtjddd    dddgd
}t ||¡|jd dd}tdddtjdddgddddtjddgdœdddd    ddtjgd
}t ||¡|jd ddd}tddddtjddgdddddtjdgdœtjdddd    ddgd
}t ||¡dS)Nr r ér,ré    rG©ÚAÚBrrZ    quicksortTrQ)ÚkindÚ    ascendingrSrTrRF)rgrh)rr<rUrrr)rrZ    sorted_dfr r"r"r#Útest_sort_index_nan¡s@(þ(þ  (þ (þ ÿ(þz*TestDataFrameSortIndex.test_sort_index_nancCsˆtdddgdddgdddgtdƒdœƒ}| tdƒ¡jtdƒd}tdddgdddgdddgtd    ƒdœƒ}| tdƒ¡}t ||¡dS)
Nrr r rÚabc©rrÚcÚdÚbar:Úbca©rrYr[rrr©rrr!r r"r"r#Útest_sort_index_multi_indexÌs"ÿ"ÿz2TestDataFrameSortIndex.test_sort_index_multi_indexcCsXttj dd¡ddddgddddgd    }|jddddg}|d}| ¡}|jd
d }|dksbt‚|}t     ||¡||dk    s‚t‚| ¡}|jd d
d }|dks¤t‚|ddd…}t     ||¡|jdd…ddddgf}| ¡}|jdd
d}|dksút‚|}t     ||¡| ¡}|jdd d
d}|dks0t‚|j
dd…ddd…f}t     ||¡dS)Nrr r rrerfÚCÚDr5T)ÚinplaceF)rhruéÿÿÿÿ)Úaxisru)rwrhru) rr<r=r>r*rrrrrr\)rÚframeÚ    unorderedZa_valuesrÚ return_valuer r"r"r#Útest_sort_index_inplaceÚs:
 
ÿ       z.TestDataFrameSortIndex.test_sort_index_inplacec    CsÜt d¡ d¡}t t d¡d¡}tj d¡}| |¡}| |¡}t||tj d¡dœƒ}t     |j
  ¡|j
|j f¡}| |¡}|  ddg¡}|jddgd    }| |¡}t ||¡|d
jddgd    }t ||d
¡dS) NérGéd)rerfrsrerfr r©rhrs)r<rWÚrepeatZtiler=Z permutationZtakerr>ZlexsortrfÚmaxrer[rrrr])    rrerfZindexerrZ
ex_indexerr Zidfr!r"r"r#Ú#test_sort_index_different_sortorderÿs 
 
 
 
 z:TestDataFrameSortIndex.test_sort_index_different_sortordercCsþtjdddgdddggtdƒd}tddgddgg|ƒ}|jddd    }|}t ||¡|jdd
gdd    }|}t ||¡|jd d
dgd }|jdd g}t ||¡|jd
d dgd }|jdd g}t ||¡|jd dgd }|jdd g}t ||¡dS)Nr rÚABCr3r rreF©r;Zsort_remainingrfrsr:r)rrVrYrrrrr\)rr^rr!r r"r"r#Útest_sort_index_levels""    z,TestDataFrameSortIndex.test_sort_index_levelcCsttjdddttdƒƒ ttdƒƒ¡dœƒ d¡}| ¡}|j    dd    d
d d d g}t
  ||¡|jdd}|j    d d d    d
d dg}t
  ||¡dS)NrbÚint64©ÚdtypeZaabbcaZcabrdrfrrr rGr rFr~) rr<rWrrYÚastyperr[rr\rrrqr"r"r#Ú!test_sort_index_categorical_index1s þÿû  z8TestDataFrameSortIndex.test_sort_index_categorical_indexcCsètt d¡ dd¡ddddgdddd    gd
}|jddddg}|jd d }|}t ||¡|jd d}|ddd…}t ||¡|jdd…dddd gf}|jdd }t ||¡|jdd d}|jdd…ddd…f}t ||¡dS)NrErr r rrerfrsrtr5r©rwFr~rv)rwrh)    rr<rWrXr*rrrr\)rrxryr!r r"r"r#Útest_sort_indexAs$
 
ý      z&TestDataFrameSortIndex.test_sort_indexr;rercCstjdddgdddgdddggtdƒd}tddgddgddgg|d    }tjdddgdddgdddggtdƒd}tddgddgddgg|d    }|j|d
}t ||¡tjdddgdddgdddggtdƒd}tddgddgddgg|d    }|j|d d }t ||¡dS) Nr r rr‚r3rrGrbrr:Frƒ)rrVrYrrrr)rr;r^rZ expected_mir r!r"r"r#Útest_sort_index_multiindex]s&ÿÿ  ÿz1TestDataFrameSortIndex.test_sort_index_multiindexcCs´ttj d¡ƒ}tt tj d¡¡ƒ}tjttj d¡ƒdddddgd}tj|||gdd    d
d gd }|jd
d gd d     ¡ 
¡}t j ddddgdd}|j jdj}t ||¡dS)Nr}éýÿÿÿçà¿rçà?r)Zbinsr ÚYZX1ZX2)rwÚkeysT)Zobserved)gÀrŽ)rŽç)r’r)rç@Úright)Úclosed)rr<r=r>ÚsignrZZcutÚconcatr?ZmeanZunstackrrVr&rÚ
categoriesrrA)rÚyÚx1Zx2Úmodelr!r r"r"r#Útest_sort_index_intervalindexvs$
ÿz4TestDataFrameSortIndex.test_sort_index_intervalindexruTFzAoriginal_dict, sorted_dict, ascending, ignore_index, output_indexr r rrGc Csxdddg}t||d}t||d}    |||dœ}
|rH| ¡} | jf|
Žn |jf|
Ž} t | |    ¡t |t||d¡dS)Nr rGrr©rhÚ ignore_indexru)rrrrr) rruÚ original_dictÚ sorted_dictrhržÚ output_indexZoriginal_indexrÚ expected_dfÚkwargsÚ    result_dfr"r"r#Útest_sort_index_ignore_index…s
  ý  z3TestDataFrameSortIndex.test_sort_index_ignore_indexržcCs|tddddgitdddƒd}|jd    ||d
}|r6|}|rNtddddgiƒ}ntddddgitdddƒd}t ||¡dS) Nrr r rrrvéþÿÿÿrFr)rrrrr)rruržrr!r r"r"r#Útest_respect_ignore_index¥sÿz0TestDataFrameSortIndex.test_respect_ignore_indexr)ZM1ZM2©r r ©rrÚABr3c Cs„tjddgtdƒd}t||d}t||d}    |||dœ}
|rT| ¡} | jf|
Žn |jf|
Ž} t | |    ¡t |t||d¡dS)Nr¨r©rªr3rr)rrVrYrrrrr) rrurŸr rhržr¡r^rr¢r£r¤r"r"r#Ú(test_sort_index_ignore_index_multi_index·s&  ý  z?TestDataFrameSortIndex.test_sort_index_ignore_index_multi_indexc CsÈttdƒtjddddddgdddgddddddddgd    œƒ}| d
d g¡ ¡}td d ddddgdgttdddgdddgdd
ddddggddddddgddddddggd
d gdd}t     ||¡dS)NrbrrrlT)r˜Úorderedrr )rÚl1Úl2r­r®rrGr rÚcategory)r˜r¬Únamer‡)rrr4r%)
rÚrangerZZ Categoricalr[rrrrrrqr"r"r#Ú&test_sort_index_categorical_multiindexðs:ýùÿ ûø
ôýz=TestDataFrameSortIndex.test_sort_index_categorical_multiindexc    Csìtddgddggtdƒd}tddgddgddgddggt ddddg¡d}|j ¡s\t‚tddgddgddgddggt d    d
gtdƒg¡d}| ¡}|jj    s¦t‚t
  ||¡tddgddgddgddggtd    d
gd d ggd d ddgd dd dggdd}| ¡}|j ¡st‚t
  ||¡t j ||gd
d    gd}| ¡}|jj    sNt‚t
  ||¡tddgddggtjddgddgdd}|jjt  |jjd¡dd|_|jj    r²t‚|jdd}|jj    sÌt‚|jddd}|jj    sèt‚dS)Nr r Úabr)rr)rr)皙™™™™é?r)r´rrr´rrrr)r‘rbé)rz20160811 12:00:00)rz20160809 12:00:00r­ÚDater3)r&r:rŠ)rwr;)rrYrrVrrrr)rrrrrZr—r&Z
set_levelsÚ to_datetimer)rrr r!Z    concattedr"r"r#Ú"test_sort_index_and_reconstructionsZ
ÿþþ  ÿþ  þþÿ z9TestDataFrameSortIndex.test_sort_index_and_reconstructioncCsz|}| ¡}t t|ƒ¡|_|djdd}|jj|jjks@t‚| ¡}|jddd}|dksbt‚t     ||jdd¡dS)Nrerr:T)r;ru)
rr<rWÚlenrrr4rrr)rÚ multiindex_dataframe_random_datarxrZa_sortedÚrsrzr"r"r#Útest_sort_index_level2Ns z-TestDataFrameSortIndex.test_sort_index_level2cCs´t t d¡gd¡}ttj d¡ d¡|d}|jdd}|j    j
dksLt ‚t t d¡gd¡}ttj d¡ d¡|d}|jdd}|j j |j j k ¡s t ‚|j    j
dks°t ‚dS)Ni rr…rrr:Úint32)rZ from_arraysr<rWrr=r>rˆrrZ_lexsort_depthrZdtypesÚvaluesÚall)rrrr!r"r"r#Ú'test_sort_index_level_large_cardinalitybs  z>TestDataFrameSortIndex.test_sort_index_level_large_cardinalitycCs8|}ddg|j_|jdd}|jdd}t ||¡dS)NrTÚsecondr:r )rr4rrr)rrºrxr!r r"r"r#Útest_sort_index_level_by_namets
   z4TestDataFrameSortIndex.test_sort_index_level_by_namecCs–|}|jdd}| ¡}d|d<|jdd}t ||jdgdd¡|j}|jddd}d|d<|jddd}t |jdgdd|jdgdd¡dS)Nr r:ÚbarÚfoorŠ)r;rw)rÄZthree)rrrrZdropÚT)rrºrxZ sorted_beforerZ sorted_afterZdftr"r"r#Útest_sort_index_level_mixed|s  þz2TestDataFrameSortIndex.test_sort_index_level_mixedcCs$|}| ¡}|jj|jjks t‚dS©N)rrr4r)rrºrxr!r"r"r#Útest_sort_index_preserve_levelssz6TestDataFrameSortIndex.test_sort_index_preserve_levelsz    gen,extragð?r“g@g@g@Z20130101Z20130103Z20130102Z20130105Z20130104Z1oneZ3oneZ2oneZ5oneZ4onec        Cs$tj d¡tj dd¡}t dd„|Dƒ¡}t|tdƒ|d}tj    |tdtdƒt d    |fg¡dgd
d }t
|ƒ  ¡d  ¡d    gksŠt ‚| ¡jd
d }|jdd…dd d
dgf}t ||¡|jd
d }|jdd…dd d
ddgf}t ||¡| ¡}d|d    |f<|jd
d }t ||¡dS) NrrrcSsg|] }d|f‘qS)r/r"©Ú.0Úir"r"r#Ú
<listcomp>«szOTestDataFrameSortIndex.test_sort_index_multilevel_repr_8017.<locals>.<listcomp>Údefr5Zworldr/r rŠr )r<r=Úseedr>rrVrrYrZr—ÚstrÚ
splitlinesÚsplitrrrr\rr)    rÚgenÚextraÚdatar&rr`r!r r"r"r#Ú$test_sort_index_multilevel_repr_8017–s2 ýþ÷     z;TestDataFrameSortIndex.test_sort_index_multilevel_repr_8017r˜rrrlrÏ)Úidz pd.IntervalcCstdtt|ƒƒit||ddd}|j |jjddd…¡|_| ¡}tdttt|ƒƒƒit|ddd…|ddd…ddd}t     
||¡dS)NrÄT)rÔr˜r¬rrv) rr±r¹rrZreorder_categoriesr˜rÚreversedrr)rr˜rr!r r"r"r#Útest_sort_index_with_categoriesÑs& ÿþ ÿþz6TestDataFrameSortIndex.test_sort_index_with_categoriesrhNÚTruec    sbtt d¡ƒ}t|jƒ‰‡fdd„tˆƒDƒ|_d}tjt|d|j    d|ddW5QRXdS)    Né@csg|]}|ˆdˆ‘qS)r r"rÉ©Úlengthr"r#rÌùszUTestDataFrameSortIndex.test_sort_index_ascending_bad_value_raises.<locals>.<listcomp>z+For argument "ascending" expected type bool©ÚmatchrrT)rwrhrS)
rr<rWr¹rr±ÚpytestÚraisesÚ
ValueErrorr)rrhrrÞr"rÛr#Ú*test_sort_index_ascending_bad_value_raisesís
 
zATestDataFrameSortIndex.test_sort_index_ascending_bad_value_raisesc    CsXtdddgdddgdœtjdddd    }t d
d ¡| ¡}W5QRXt ||¡dS) Nr r rrrG)Zcol1Zcol2Z2020)Zperiodsrzmode.use_inf_as_naT)rrZZ
date_rangeZoption_contextrrr©rr r!r"r"r#Útest_sort_index_use_inf_as_naþs þz4TestDataFrameSortIndex.test_sort_index_use_inf_as_na)TFcCs‚tddddddgitjdddddgd    d
gd d }|jd |d}tddddddgitjdddddgd    d
gd d }t ||¡dS)NZlegsrr )ÚmammalZdog)ÚbirdZduck)råZhorse)ræZpenguin)råZkangarooÚclassZanimalr3r)rr )r;rh)rrrVrrr)rrhrr!r r"r"r#Útest_sort_index_ascending_tuples< ÿûøü ÿûøüz6TestDataFrameSortIndex.test_sort_index_ascending_tuple))Ú__name__Ú
__module__Ú __qualname__r$r+rBrarirrr{rr„r‰r‹rßÚmarkZ parametrizerŒrœr¥r§rrVrYr«r²r¸r¼rÀrÂrÆrÈr    rÕÚparamrZZIntervalrØrârärèr"r"r"r#r
sΠ   Q+%
&&&&üþ      ûûûûêþ! "<üù    ôþ
* þþþ
 
ýþ
    
 
þr
c@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)ÚTestDataFrameSortIndexKeycCsÞtdddgdddgdddgtdƒdœƒ tdƒ¡}|jtdƒdd    „d
}tdddgdddgdddgtd ƒdœƒ tdƒ¡}t ||¡|jtdƒd d    „d
}tdddgdddgdddgtd ƒdœƒ tdƒ¡}t ||¡dS)Nrr r rrjrkÚaccSs|SrÇr"©Úxr"r"r#Ú<lambda>:ózETestDataFrameSortIndexKey.test_sort_multi_index_key.<locals>.<lambda>©r;ÚkeyrocSs| SrÇr"rðr"r"r#ròAróZacbrprqr"r"r#Útest_sort_multi_index_key4s&"ÿþ"ÿþ "ÿþz3TestDataFrameSortIndexKey.test_sort_multi_index_keycCs®ttjdddtdƒd}| ¡}|jdddd    d
d g}t ||¡|jd d „d}|jdd    d
ddd g}t ||¡|jdd „dd}|jd dddd    d
g}t ||¡dS)Nrbr…r†ZaaBBcarr rrr rGrcSs
|j ¡SrÇ©rÏÚlowerrðr"r"r#ròOróz?TestDataFrameSortIndexKey.test_sort_index_key.<locals>.<lambda>©rõcSs
|j ¡SrÇr÷rðr"r"r#ròSróF)rõrh)rr<rWrYrr\rrrqr"r"r#Útest_sort_index_keyHs  z-TestDataFrameSortIndexKey.test_sort_index_keycCs|ttjdddtjdddd}| ¡}t ||¡|jdd„d}|jdd    }t ||¡|jd
d„d}t ||¡dS) Nrbr…r†rcSs| SrÇr"rðr"r"r#rò]rózCTestDataFrameSortIndexKey.test_sort_index_key_int.<locals>.<lambda>rùFr~cSsd|S)Nr r"rðr"r"r#ròaró)rr<rWrrrrqr"r"r#Útest_sort_index_key_intWs    z1TestDataFrameSortIndexKey.test_sort_index_key_intcCsÚtdddgdddgtdƒdddgdœƒ tdƒ¡}|jdd    d
„d }tdddgdddgtd ƒdddgdœƒ tdƒ¡}t ||¡|jtdƒd d
„d }tdddgdddgtd ƒdddgdœƒ tdƒ¡}t ||¡dS)Nrfrrsrr rjr rkcSs
|j ¡SrÇr÷rðr"r"r#ròjrózITestDataFrameSortIndexKey.test_sort_multi_index_key_str.<locals>.<lambda>rôZbaccSs|jdkr|j ¡S| S)N)rrl)r°rÏrørðr"r"r#ròsrórprqr"r"r#Útest_sort_multi_index_key_strds,"ÿþ"ÿþ þ"ÿþz7TestDataFrameSortIndexKey.test_sort_multi_index_key_strc    Cs@tddddgiƒ}tjtdd|jdd„d    W5QRXdS)
Nrer r rzchange the shaperÝcSs |dd…S)Nr r"rðr"r"r#rò~rózFTestDataFrameSortIndexKey.test_changes_length_raises.<locals>.<lambda>rù)rrßràrár)rrr"r"r#Útest_changes_length_raises{sz4TestDataFrameSortIndexKey.test_changes_length_raisescCsJtdd„tddƒDƒt ddgddgg¡d}|jdd}t ||¡dS)    Nc    Ss,i|]$}|tjddddgt dd¡d“qS)r’Úfloat64r†)rZÚarrayZ SparseDtyperÉr"r"r#Ú
<dictcomp>„sÿzVTestDataFrameSortIndexKey.test_sort_index_multiindex_sparse_column.<locals>.<dictcomp>rrr r rr:)rr±rr)rrrrãr"r"r#Ú(test_sort_index_multiindex_sparse_column€sþû zBTestDataFrameSortIndexKey.test_sort_index_multiindex_sparse_columnN)    rérêrërörúrûrürýrr"r"r"r#rî3s  rî)Únumpyr<rßZpandasrZrrrrrrrr    Zpandas._testingZ_testingrr
rîr"r"r"r#Ú<module>s(
'