44from fnmatch import fnmatchcase
55
66
7- from . import PY2
8-
9-
10- if PY2 :
11- from itertools import ifilter , izip
12- else :
13- ifilter = filter
14- izip = zip
15- xrange = range
16- unicode = str
17- long = int
18-
19-
207def kvs (node ):
218 '''
229 Return a (key, value) iterator for the node.
2310
2411 kvs(node) -> (generator -> (key, value))
2512 '''
2613 try :
27- if PY2 :
28- return node .iteritems ()
29- else :
30- return iter (node .items ())
14+ return iter (node .items ())
3115 except AttributeError :
32- return izip ( xrange (len (node )), node )
16+ return zip ( range (len (node )), node )
3317
3418
3519def leaf (thing ):
@@ -38,10 +22,8 @@ def leaf(thing):
3822
3923 leaf(thing) -> bool
4024 '''
41- if PY2 :
42- leaves = (str , unicode , int , long , float , bool , type (None ))
43- else :
44- leaves = (bytes , str , int , float , bool , type (None ))
25+ leaves = (bytes , str , int , float , bool , type (None ))
26+
4527 return isinstance (thing , leaves )
4628
4729
@@ -140,7 +122,7 @@ def leaves(obj):
140122
141123 leaves(obj) -> (generator -> (segment, value))
142124 '''
143- return ifilter (lambda p : leafy (p [1 ]), walk (obj ))
125+ return filter (lambda p : leafy (p [1 ]), walk (obj ))
144126
145127
146128def int_str (segment ):
@@ -154,7 +136,7 @@ def int_str(segment):
154136
155137 int_str(segment) -> str
156138 '''
157- if isinstance (segment , ( int , long ) ):
139+ if isinstance (segment , int ):
158140 return str (segment )
159141 return segment
160142
@@ -270,7 +252,7 @@ def extend(thing, index, value=None):
270252 # Using this rather than the multiply notation in order to support a
271253 # wider variety of sequence like things.
272254 extra = (index + 1 ) - len (thing )
273- for i in xrange (extra ):
255+ for i in range (extra ):
274256 expansion += [value ]
275257 thing .extend (expansion )
276258 except TypeError :
@@ -284,15 +266,15 @@ def extend(thing, index, value=None):
284266
285267def __default_creator__ (current , segments , i , hints = ()):
286268 '''
287- Create missing path components. If the segment is an int or long , then it
288- will create a list. Otherwise a dictionary is created.
269+ Create missing path components. If the segment is an int, then it will
270+ create a list. Otherwise a dictionary is created.
289271
290272 set(obj, segments, value) -> obj
291273 '''
292274 segment = segments [i ]
293275 length = len (segments )
294276
295- if isinstance (segment , ( int , long ) ):
277+ if isinstance (segment , int ):
296278 extend (current , segment )
297279
298280 # Infer the type from the hints provided.
@@ -306,7 +288,7 @@ def __default_creator__(current, segments, i, hints=()):
306288 else :
307289 segment_next = None
308290
309- if isinstance (segment_next , ( int , long ) ):
291+ if isinstance (segment_next , int ):
310292 current [segment ] = []
311293 else :
312294 current [segment ] = {}
@@ -342,7 +324,7 @@ def set(obj, segments, value, creator=__default_creator__, hints=()):
342324 if i != length - 1 and leaf (current ):
343325 raise PathNotFound ('Path: {}[{}]' .format (segments , i ))
344326
345- if isinstance (segments [- 1 ], ( int , long ) ):
327+ if isinstance (segments [- 1 ], int ):
346328 extend (current , segments [- 1 ])
347329
348330 current [segments [- 1 ]] = value
0 commit comments