[Git][debian-gis-team/python-geojson][master] 4 commits: New upstream version 2.4.1
Bas Couwenberg
gitlab at salsa.debian.org
Thu Oct 18 14:12:15 BST 2018
Bas Couwenberg pushed to branch master at Debian GIS Project / python-geojson
Commits:
1de69b33 by Bas Couwenberg at 2018-10-18T12:52:00Z
New upstream version 2.4.1
- - - - -
fe6bfbe4 by Bas Couwenberg at 2018-10-18T12:52:02Z
Merge tag 'upstream/2.4.1'
Upstream version 2.4.1
- - - - -
d65f77a4 by Bas Couwenberg at 2018-10-18T12:52:23Z
New upstream release.
- - - - -
77481118 by Bas Couwenberg at 2018-10-18T12:53:03Z
Set distribution to unstable.
- - - - -
7 changed files:
- CHANGELOG.rst
- README.rst
- debian/changelog
- geojson/_version.py
- geojson/geometry.py
- geojson/utils.py
- tests/test_coords.py
Changes:
=====================================
CHANGELOG.rst
=====================================
@@ -1,6 +1,13 @@
Changes
=======
+2.4.1 (2018-10-17)
+------------------
+
+- Allow ``FeatureCollections`` to be passed to ``coords``
+
+ - https://github.com/frewsxcv/python-geojson/pull/117
+
2.4.0 (2018-05-21)
------------------
=====================================
README.rst
=====================================
@@ -224,7 +224,7 @@ Visualize the result of the example above `here <https://gist.github.com/frewsxc
GeoJSON encoding/decoding
-------------------------
-All of the GeoJSON Objects implemented in this library can be encoded and decoded into raw GeoJSON with the ``geojson.dump``, ``geojson.dumps``, ``geojson.load``, and ``geojson.loads`` functions.
+All of the GeoJSON Objects implemented in this library can be encoded and decoded into raw GeoJSON with the ``geojson.dump``, ``geojson.dumps``, ``geojson.load``, and ``geojson.loads`` functions. Note that each of these functions is a wrapper around the core `json` function with the same name, and will pass through any additional arguments. This allows you to control the JSON formatting or parsing behavior with the underlying core `json` functions.
.. code:: python
=====================================
debian/changelog
=====================================
@@ -1,11 +1,13 @@
-python-geojson (2.4.0-2) UNRELEASED; urgency=medium
+python-geojson (2.4.1-1) unstable; urgency=medium
+ * Team upload.
+ * New upstream release.
* Bump Standards-Version to 4.2.1, no changes.
* Drop autopkgtests to test installability & module import.
* Add lintian override for testsuite-autopkgtest-missing.
* Update watch file to limit matches to archive path.
- -- Bas Couwenberg <sebastic at debian.org> Thu, 05 Jul 2018 11:06:32 +0200
+ -- Bas Couwenberg <sebastic at debian.org> Thu, 18 Oct 2018 14:52:47 +0200
python-geojson (2.4.0-1) unstable; urgency=medium
=====================================
geojson/_version.py
=====================================
@@ -1,2 +1,2 @@
-__version__ = "2.4.0"
+__version__ = "2.4.1"
__version_info__ = tuple(map(int, __version__.split(".")))
=====================================
geojson/geometry.py
=====================================
@@ -21,7 +21,7 @@ class Geometry(GeoJSON):
Initialises a Geometry object.
:param coordinates: Coordinates of the Geometry object.
- :type coordinates: tuple
+ :type coordinates: tuple or list of tuple
:param crs: CRS
:type crs: CRS object
"""
=====================================
geojson/utils.py
=====================================
@@ -10,19 +10,26 @@ def coords(obj):
:return: A generator with coordinate tuples from the geometry or feature.
:rtype: generator
"""
-
- if isinstance(obj, (tuple, list)):
- coordinates = obj
- elif 'geometry' in obj:
- coordinates = obj['geometry']['coordinates']
+ # Handle recursive case first
+ if 'features' in obj:
+ for f in obj['features']:
+ # For Python 2 compatibility
+ # See https://www.reddit.com/r/learnpython/comments/4rc15s/yield_from_and_python_27/ # noqa: E501
+ for c in coords(f):
+ yield c
else:
- coordinates = obj.get('coordinates', obj)
- for e in coordinates:
- if isinstance(e, (float, int)):
- yield tuple(coordinates)
- break
- for f in coords(e):
- yield f
+ if isinstance(obj, (tuple, list)):
+ coordinates = obj
+ elif 'geometry' in obj:
+ coordinates = obj['geometry']['coordinates']
+ else:
+ coordinates = obj.get('coordinates', obj)
+ for e in coordinates:
+ if isinstance(e, (float, int)):
+ yield tuple(coordinates)
+ break
+ for f in coords(e):
+ yield f
def map_coords(func, obj):
=====================================
tests/test_coords.py
=====================================
@@ -27,6 +27,14 @@ class CoordsTestCase(unittest.TestCase):
self.assertEqual(pairs[0], (3.78, 9.28))
self.assertEqual(pairs[-1], (23.18, -34.29))
+ def test_featurecollection(self):
+ p1 = geojson.Feature(geometry=geojson.Point((-115.11, 37.11)))
+ p2 = geojson.Feature(geometry=geojson.Point((-115.22, 37.22)))
+ itr = coords(geojson.FeatureCollection([p1, p2]))
+ pairs = list(itr)
+ self.assertEqual(pairs[0], (-115.11, 37.11))
+ self.assertEqual(pairs[1], (-115.22, 37.22))
+
def test_map_point(self):
result = map_coords(lambda x: x, geojson.Point((-115.81, 37.24)))
self.assertEqual(result['type'], 'Point')
View it on GitLab: https://salsa.debian.org/debian-gis-team/python-geojson/compare/0d7a9e0b04779a51eba3d8118bcae5eece9834dc...7748111871950e078a5370964fa22a2657c9aa27
--
View it on GitLab: https://salsa.debian.org/debian-gis-team/python-geojson/compare/0d7a9e0b04779a51eba3d8118bcae5eece9834dc...7748111871950e078a5370964fa22a2657c9aa27
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20181018/9c433218/attachment-0001.html>
More information about the Pkg-grass-devel
mailing list