/usr/lib/python3/dist-packages/geojson/geometry.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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | import sys
from decimal import Decimal
from geojson.base import GeoJSON
class Geometry(GeoJSON):
"""
Represents an abstract base class for a WGS84 geometry.
"""
if sys.version_info[0] == 3:
# Python 3.x has no long type
__JSON_compliant_types = (float, int, Decimal)
else:
__JSON_compliant_types = (float, int, Decimal, long) # noqa
def __init__(self, coordinates=None, crs=None, **extra):
"""
Initialises a Geometry object.
:param coordinates: Coordinates of the Geometry object.
:type coordinates: tuple
:param crs: CRS
:type crs: CRS object
"""
super(Geometry, self).__init__(**extra)
self["coordinates"] = coordinates or []
self.clean_coordinates(self["coordinates"])
if crs:
self["crs"] = self.to_instance(crs, strict=True)
@classmethod
def clean_coordinates(cls, coords):
for coord in coords:
if isinstance(coord, (list, tuple)):
cls.clean_coordinates(coord)
elif not isinstance(coord, cls.__JSON_compliant_types):
raise ValueError("%r is not JSON compliant number" % coord)
class GeometryCollection(GeoJSON):
"""
Represents an abstract base class for collections of WGS84 geometries.
"""
def __init__(self, geometries=None, **extra):
super(GeometryCollection, self).__init__(**extra)
self["geometries"] = geometries or []
# Marker classes.
class Point(Geometry):
pass
class MultiPoint(Geometry):
pass
class LineString(MultiPoint):
pass
class MultiLineString(Geometry):
pass
class Polygon(Geometry):
pass
class MultiPolygon(Geometry):
pass
class Default(object):
"""
GeoJSON default object.
"""
|