77from functools import total_ordering
88import logging
99import numbers
10- from six import PY3
11- from six import string_types
12- from six import with_metaclass
1310
1411from operator import itemgetter
1512
16- if PY3 :
17- unicode = str # workaround for flake8
18-
1913
2014logger = logging .getLogger (__name__ )
2115
@@ -34,15 +28,6 @@ class EnumLookupError(LookupError):
3428 pass
3529
3630
37- def _str_or_ascii_replace (stringy ):
38- if PY3 :
39- return stringy
40- else :
41- if isinstance (stringy , str ):
42- stringy = stringy .decode ('utf-8' )
43- return stringy .encode ('ascii' , 'replace' )
44-
45-
4631def _items (dict ):
4732 try :
4833 return dict .iteritems ()
@@ -96,16 +81,15 @@ def __init__(self, canonical_name, display_name, *args, **kwargs):
9681 def __repr__ (self ):
9782 return "<%s: %s ('%s')>" % (
9883 self .__class__ .__name__ ,
99- _str_or_ascii_replace ( self .canonical_name ) ,
100- _str_or_ascii_replace ( self .display_name ) ,
84+ self .canonical_name ,
85+ self .display_name ,
10186 )
10287
10388 def __unicode__ (self ):
104- return unicode (self .display_name )
89+ return str (self .display_name )
10590
10691 def __str__ (self ):
107- return str (self .display_name ) if PY3 else unicode (self ).encode (
108- 'utf-8' , 'xmlcharrefreplace' )
92+ return str (self .display_name )
10993
11094 def __hash__ (self ):
11195 return hash (self .canonical_name )
@@ -152,8 +136,8 @@ def __repr__(self):
152136 return "<%s #%s: %s ('%s')>" % (
153137 self .__class__ .__name__ ,
154138 self .index ,
155- _str_or_ascii_replace ( self .canonical_name ) ,
156- _str_or_ascii_replace ( self .display_name ) ,
139+ self .canonical_name ,
140+ self .display_name ,
157141 )
158142
159143 def __lt__ (self , other ):
@@ -225,7 +209,7 @@ def __contains__(cls, item):
225209 members = cls .members ()
226210 if not members :
227211 return False
228- if not type (members [0 ]) == type (item ):
212+ if not type (members [0 ]) is type (item ):
229213 return False
230214 return (item in members )
231215
@@ -279,7 +263,7 @@ def lookup(cls, field, value):
279263 return member
280264
281265 if (
282- not isinstance (member_value , string_types ) and
266+ not isinstance (member_value , str ) and
283267 isinstance (member_value , collectionsAbc .Iterable ) and
284268 value in member_value
285269 ):
@@ -311,7 +295,7 @@ def choices(cls, value_field='canonical_name', display_field='display_name'):
311295 return [m .choicify (value_field = value_field , display_field = display_field ) for m in cls .members ()]
312296
313297
314- class RichEnum (with_metaclass ( _RichEnumMetaclass , _EnumMethods ) ):
298+ class RichEnum (_EnumMethods , metaclass = _RichEnumMetaclass ):
315299 """
316300 Enumeration that can represent a name for referencing (canonical_name) and
317301 a name for displaying (display_name).
@@ -339,7 +323,7 @@ class RichEnum(with_metaclass(_RichEnumMetaclass, _EnumMethods)):
339323 __virtual__ = True
340324
341325
342- class OrderedRichEnum (with_metaclass ( _OrderedRichEnumMetaclass , _EnumMethods ) ):
326+ class OrderedRichEnum (_EnumMethods , metaclass = _OrderedRichEnumMetaclass ):
343327 """
344328 Use OrderedRichEnum when you need a RichEnum with index-based
345329 access into the enum, e.g. OrderedRichEnumExample.from_index(0),
0 commit comments