/usr/lib/python3/dist-packages/geojson/codec.py is in python3-geojson 1.3.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 58 59 | try:
import simplejson as json
except ImportError:
import json
import geojson
import geojson.factory
from geojson.mapping import to_mapping
class GeoJSONEncoder(json.JSONEncoder):
def default(self, obj):
return geojson.factory.GeoJSON.to_instance(obj)
# Wrap the functions from json, providing encoder, decoders, and
# object creation hooks.
# Here the defaults are set to only permit valid JSON as per RFC 4267
def _enforce_strict_numbers(obj):
if isinstance(obj, (int, float)):
raise ValueError("Number %r is not JSON compliant" % obj)
def dump(obj, fp, cls=GeoJSONEncoder, allow_nan=False, **kwargs):
return json.dump(to_mapping(obj),
fp, cls=cls, allow_nan=allow_nan, **kwargs)
def dumps(obj, cls=GeoJSONEncoder, allow_nan=False, **kwargs):
return json.dumps(to_mapping(obj),
cls=cls, allow_nan=allow_nan, **kwargs)
def load(fp,
cls=json.JSONDecoder,
parse_constant=_enforce_strict_numbers,
object_hook=geojson.base.GeoJSON.to_instance,
**kwargs):
return json.load(fp,
cls=cls, object_hook=object_hook,
parse_constant=parse_constant,
**kwargs)
def loads(s,
cls=json.JSONDecoder,
parse_constant=_enforce_strict_numbers,
object_hook=geojson.base.GeoJSON.to_instance,
**kwargs):
return json.loads(s,
cls=cls, object_hook=object_hook,
parse_constant=parse_constant,
**kwargs)
# Backwards compatibility
PyGFPEncoder = GeoJSONEncoder
|