1
1
import collections
2
+ try :
3
+ import collections .abc as collections_abc
4
+ except ImportError :
5
+ import collections as collections_abc
2
6
import copy
3
7
4
8
from ..language import ast
@@ -234,7 +238,7 @@ def define_field_map(
234
238
if callable (field_map ):
235
239
field_map = field_map ()
236
240
237
- assert isinstance (field_map , collections .Mapping ) and len (field_map ) > 0 , (
241
+ assert isinstance (field_map , collections_abc .Mapping ) and len (field_map ) > 0 , (
238
242
"{} fields must be a mapping (dict / OrderedDict) with field names as keys or a "
239
243
"function which returns such a mapping."
240
244
).format (type )
@@ -248,7 +252,7 @@ def define_field_map(
248
252
249
253
if field_args :
250
254
assert isinstance (
251
- field_args , collections .Mapping
255
+ field_args , collections_abc .Mapping
252
256
), "{}.{} args must be a mapping (dict / OrderedDict) with argument names as keys." .format (
253
257
type , field_name
254
258
)
@@ -520,15 +524,15 @@ def serialize(self, value):
520
524
if isinstance (value , PyEnum ):
521
525
# We handle PyEnum values
522
526
value = value .value
523
- if isinstance (value , collections .Hashable ):
527
+ if isinstance (value , collections_abc .Hashable ):
524
528
enum_value = self ._value_lookup .get (value )
525
529
if enum_value :
526
530
return enum_value .name
527
531
528
532
return None
529
533
530
534
def parse_value (self , value ):
531
- if isinstance (value , collections .Hashable ):
535
+ if isinstance (value , collections_abc .Hashable ):
532
536
enum_value = self ._name_lookup .get (value )
533
537
534
538
if enum_value :
@@ -555,7 +559,7 @@ def _name_lookup(self):
555
559
556
560
def define_enum_values (type , value_map ):
557
561
assert (
558
- isinstance (value_map , collections .Mapping ) and len (value_map ) > 0
562
+ isinstance (value_map , collections_abc .Mapping ) and len (value_map ) > 0
559
563
), "{} values must be a mapping (dict / OrderedDict) with value names as keys." .format (
560
564
type
561
565
)
@@ -661,7 +665,7 @@ def _define_field_map(self):
661
665
else :
662
666
fields = self ._fields
663
667
664
- assert isinstance (fields , collections .Mapping ) and len (fields ) > 0 , (
668
+ assert isinstance (fields , collections_abc .Mapping ) and len (fields ) > 0 , (
665
669
"{} fields must be a mapping (dict / OrderedDict) with field names as keys or a "
666
670
"function which returns such a mapping."
667
671
).format (self )
0 commit comments