tzh
2024-08-22 c7d0944258c7d0943aa7b2211498fd612971ce27
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
Y\¬Qc@s·dZddlmZddlmZddlmZddlmZddlmZm    Z    m
Z
m Z m Z m Z ddlmZejedgƒBZd    ejfd
„ƒYZd S( sjFixer for dict methods.
 
d.keys() -> list(d.keys())
d.items() -> list(d.items())
d.values() -> list(d.values())
 
d.iterkeys() -> iter(d.keys())
d.iteritems() -> iter(d.items())
d.itervalues() -> iter(d.values())
 
d.viewkeys() -> d.keys()
d.viewitems() -> d.items()
d.viewvalues() -> d.values()
 
Except in certain very specific contexts: the iter() can be dropped
when the context is list(), sorted(), iter() or for...in; the list()
can be dropped when the context is list() or sorted() (but not iter()
or for...in!). Special contexts that apply to both: list(), sorted(), tuple()
set(), any(), all(), sum().
 
Note: iter(d.keys()) could be written as iter(d) but since the
original d.iterkeys() was also redundant we don't fix this.  And there
are (rare) contexts where it makes a difference (e.g. when passing it
as an argument to a function that introspects the argument).
i(tpytree(tpatcomp(ttoken(t
fixer_base(tNametCalltLParentRParentArgListtDot(t
fixer_utiltitertFixDictcBsPeZeZdZd„ZdZejeƒZ    dZ
eje
ƒZ d„Z RS(s
    power< head=any+
         trailer< '.' method=('keys'|'items'|'values'|
                              'iterkeys'|'iteritems'|'itervalues'|
                              'viewkeys'|'viewitems'|'viewvalues') >
         parens=trailer< '(' ')' >
         tail=any*
    >
    c
Cs§|d}|dd}|d}|j}|j}|jdƒ}|jdƒ}    |s^|    rk|d}n|dks‰tt|ƒƒ‚g|D]}
|
jƒ^q}g|D]}
|
jƒ^q¯}| oÝ|j||ƒ} |tj|j    t
ƒt |d |j ƒgƒ|d jƒg} tj|j | ƒ} | p?|    srd | _ tt |r]dndƒ| gƒ} n|r—tj|j | g|ƒ} n|j | _ | S(Ntheadtmethodittailuiteruviewiukeysuitemsuvaluestprefixtparensuulist(ukeysuitemsuvalues(tsymstvaluet
startswithtAssertionErrortreprtclonetin_special_contextRtNodettrailerR    RRtpowerR(tselftnodetresultsR RRRt method_nametisitertisviewtntspecialtargstnew((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/lib2to3/fixes/fix_dict.pyt    transform7s4
 
                   ' s3power< func=NAME trailer< '(' node=any ')' > any* >smfor_stmt< 'for' any 'in' node=any ':' any* >
            | comp_for< 'for' any 'in' node=any any* >
         cCs´|jdkrtSi}|jjdk    r„|jj|jj|ƒr„|d|kr„|rm|djtkS|djtjkSn|sŽtS|j    j|j|ƒo³|d|kS(NRtfunc(
tparenttNonetFalsetp1tmatchRt iter_exemptR
tconsuming_callstp2(RRR R((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/lib2to3/fixes/fix_dict.pyR[s( t__name__t
__module__tTruet BM_compatibletPATTERNR&tP1Rtcompile_patternR+tP2R/R(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/lib2to3/fixes/fix_dict.pyR *s
    N(t__doc__tRRtpgen2RRR
RRRRRR    R.tsetR-tBaseFixR (((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/lib2to3/fixes/fix_dict.pyt<module>s.