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
|
from collections.abc import MutableMapping
try:
import simplejson as json
except ImportError:
import json
import geojson
GEO_INTERFACE_MARKER = "__geo_interface__"
def is_mapping(obj):
"""
Checks if the object is an instance of MutableMapping.
:param obj: Object to be checked.
:return: Truth value of whether the object is an instance of
MutableMapping.
:rtype: bool
"""
return isinstance(obj, MutableMapping)
def to_mapping(obj):
mapping = getattr(obj, GEO_INTERFACE_MARKER, None)
if mapping is not None:
return mapping
if is_mapping(obj):
return obj
if isinstance(obj, geojson.GeoJSON):
return dict(obj)
return json.loads(json.dumps(obj))
|