summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-15 04:32:56 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-15 04:32:56 +0000
commit102bc5ff50edf00538f272cf16b8d9caece6c9aa (patch)
tree4d04c0f2810134343b6f56160620a1c41b42f4a7
parenta78c203f71ddd1097a0c5a2aa6778f17cb4b6372 (diff)
automatic import of python-osm2geojson
-rw-r--r--.gitignore1
-rw-r--r--python-osm2geojson.spec441
-rw-r--r--sources1
3 files changed, 443 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..c197c3b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/osm2geojson-0.2.4.tar.gz
diff --git a/python-osm2geojson.spec b/python-osm2geojson.spec
new file mode 100644
index 0000000..84fd78a
--- /dev/null
+++ b/python-osm2geojson.spec
@@ -0,0 +1,441 @@
+%global _empty_manifest_terminate_build 0
+Name: python-osm2geojson
+Version: 0.2.4
+Release: 1
+Summary: Parse OSM and Overpass JSON
+License: MIT
+URL: https://github.com/aspectumapp/osm2geojson
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/9a/ce/bb00a9c79b72ba63bd9ba2f10f49e0412e39baa161583707e186c9b587c8/osm2geojson-0.2.4.tar.gz
+BuildArch: noarch
+
+
+%description
+# osm2geojson
+
+![Test package](https://github.com/aspectumapp/osm2geojson/workflows/Test%20package/badge.svg)
+
+Parse OSM and Overpass JSON with python.
+**This library is under development!**
+
+### Usage
+
+Install this package with pip:
+
+```sh
+$ pip install osm2geojson
+```
+
+If you want to convert OSM xml or Overpass json/xml to Geojson you can import this lib and use one of 4 methods:
+
+- `json2shapes(dict json_from_overpass)` - to convert Overpass json to \*Shape-objects
+- `xml2shapes(str xml_from_osm)` - to convert OSM xml or Overpass xml to \*Shape-objects
+- `json2geojson(dict json_from_overpass)` - to convert Overpass json to Geojson
+- `xml2geojson(str xml_from_osm)` - to convert OSM xml or Overpass xml to Geojson
+
+Additional parameters for all functions:
+
+- `filter_used_refs` - (default: `True`) defines geometry filtration strategy (will return all geometry if set as `False`)
+- `log_level` - (default: `'ERROR'`) controls logging level (will print all logs if set as `'INFO'`). More details [here](https://docs.python.org/3/library/logging.html#logging-levels)
+- `area_keys` - (default: `None`) defines which keys and values of an area should be saved from the list of OSM tags, see `areaKeys.json` for the defaults
+- `polygon_features` - (default: `None`) defines a whitelist/blacklist of features to be included in resulting polygons, see `polygon-features.json` for the defaults
+- `raise_on_failure` - (default: `False`) controls whether to throw an exception when geometry generation fails
+
+Other handy methods:
+
+- `overpass_call(str query)` - runs query to overpass-api.de server (retries 5 times in case of error).
+- `shape_to_feature(Shape shape, dict properties)` - Converts Shape-object to GeoJSON with passed properties.
+
+**\*Shape-object - for convenience created simple dict to save Shapely object (geometry) and OSM-properties. Structure of this object:**
+
+```py
+shape_obj = {
+ 'shape': Point | LineString | Polygon ...,
+ 'properties': {
+ 'type': 'relation' | 'node' ...,
+ 'tags': { ... },
+ ...
+ }
+}
+```
+
+After installing via `pip`, the module may also be used as a `argparse`-based command-line script.
+Either use the script name directly or call Python with the `-m` option and the package name:
+
+```sh
+osm2geojson --help
+```
+
+```sh
+python3 -m osm2geojson --help
+```
+
+### Examples
+
+Convert OSM-xml to Geojson:
+
+```py
+import codecs
+import osm2geojson
+
+with codecs.open('file.osm', 'r', encoding='utf-8') as data:
+ xml = data.read()
+
+geojson = osm2geojson.xml2geojson(xml, filter_used_refs=False, log_level='INFO')
+# >> { "type": "FeatureCollection", "features": [ ... ] }
+```
+
+Convert OSM-json to Shape-objects:
+
+```py
+import codecs
+import osm2geojson
+
+with codecs.open('file.json', 'r', encoding='utf-8') as data:
+ json = data.read()
+
+shapes_with_props = osm2geojson.json2shapes(json)
+# >> [ { "shape": <Shapely-object>, "properties": {...} }, ... ]
+```
+
+### Development
+
+Clone project with submodules
+
+```sh
+$ git clone --recurse-submodules https://github.com/aspectumapp/osm2geojson.git
+```
+
+Setup package
+
+```sh
+$ python setup.py develop
+```
+
+Run tests
+
+```sh
+$ python -m unittest tests
+```
+
+Run single test
+
+```sh
+$ python tests/main.py TestOsm2GeoJsonMethods.test_barrier_wall
+```
+
+Update osm-polygon-features to last version (if you want last version)
+
+```sh
+$ ./update-osm-polygon-features.sh
+```
+
+### ToDo
+
+ * Add tests and examples for cli tool
+ * Add actions related to cli tool (more info https://github.com/aspectumapp/osm2geojson/pull/32#issuecomment-1073386381)
+
+
+%package -n python3-osm2geojson
+Summary: Parse OSM and Overpass JSON
+Provides: python-osm2geojson
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-osm2geojson
+# osm2geojson
+
+![Test package](https://github.com/aspectumapp/osm2geojson/workflows/Test%20package/badge.svg)
+
+Parse OSM and Overpass JSON with python.
+**This library is under development!**
+
+### Usage
+
+Install this package with pip:
+
+```sh
+$ pip install osm2geojson
+```
+
+If you want to convert OSM xml or Overpass json/xml to Geojson you can import this lib and use one of 4 methods:
+
+- `json2shapes(dict json_from_overpass)` - to convert Overpass json to \*Shape-objects
+- `xml2shapes(str xml_from_osm)` - to convert OSM xml or Overpass xml to \*Shape-objects
+- `json2geojson(dict json_from_overpass)` - to convert Overpass json to Geojson
+- `xml2geojson(str xml_from_osm)` - to convert OSM xml or Overpass xml to Geojson
+
+Additional parameters for all functions:
+
+- `filter_used_refs` - (default: `True`) defines geometry filtration strategy (will return all geometry if set as `False`)
+- `log_level` - (default: `'ERROR'`) controls logging level (will print all logs if set as `'INFO'`). More details [here](https://docs.python.org/3/library/logging.html#logging-levels)
+- `area_keys` - (default: `None`) defines which keys and values of an area should be saved from the list of OSM tags, see `areaKeys.json` for the defaults
+- `polygon_features` - (default: `None`) defines a whitelist/blacklist of features to be included in resulting polygons, see `polygon-features.json` for the defaults
+- `raise_on_failure` - (default: `False`) controls whether to throw an exception when geometry generation fails
+
+Other handy methods:
+
+- `overpass_call(str query)` - runs query to overpass-api.de server (retries 5 times in case of error).
+- `shape_to_feature(Shape shape, dict properties)` - Converts Shape-object to GeoJSON with passed properties.
+
+**\*Shape-object - for convenience created simple dict to save Shapely object (geometry) and OSM-properties. Structure of this object:**
+
+```py
+shape_obj = {
+ 'shape': Point | LineString | Polygon ...,
+ 'properties': {
+ 'type': 'relation' | 'node' ...,
+ 'tags': { ... },
+ ...
+ }
+}
+```
+
+After installing via `pip`, the module may also be used as a `argparse`-based command-line script.
+Either use the script name directly or call Python with the `-m` option and the package name:
+
+```sh
+osm2geojson --help
+```
+
+```sh
+python3 -m osm2geojson --help
+```
+
+### Examples
+
+Convert OSM-xml to Geojson:
+
+```py
+import codecs
+import osm2geojson
+
+with codecs.open('file.osm', 'r', encoding='utf-8') as data:
+ xml = data.read()
+
+geojson = osm2geojson.xml2geojson(xml, filter_used_refs=False, log_level='INFO')
+# >> { "type": "FeatureCollection", "features": [ ... ] }
+```
+
+Convert OSM-json to Shape-objects:
+
+```py
+import codecs
+import osm2geojson
+
+with codecs.open('file.json', 'r', encoding='utf-8') as data:
+ json = data.read()
+
+shapes_with_props = osm2geojson.json2shapes(json)
+# >> [ { "shape": <Shapely-object>, "properties": {...} }, ... ]
+```
+
+### Development
+
+Clone project with submodules
+
+```sh
+$ git clone --recurse-submodules https://github.com/aspectumapp/osm2geojson.git
+```
+
+Setup package
+
+```sh
+$ python setup.py develop
+```
+
+Run tests
+
+```sh
+$ python -m unittest tests
+```
+
+Run single test
+
+```sh
+$ python tests/main.py TestOsm2GeoJsonMethods.test_barrier_wall
+```
+
+Update osm-polygon-features to last version (if you want last version)
+
+```sh
+$ ./update-osm-polygon-features.sh
+```
+
+### ToDo
+
+ * Add tests and examples for cli tool
+ * Add actions related to cli tool (more info https://github.com/aspectumapp/osm2geojson/pull/32#issuecomment-1073386381)
+
+
+%package help
+Summary: Development documents and examples for osm2geojson
+Provides: python3-osm2geojson-doc
+%description help
+# osm2geojson
+
+![Test package](https://github.com/aspectumapp/osm2geojson/workflows/Test%20package/badge.svg)
+
+Parse OSM and Overpass JSON with python.
+**This library is under development!**
+
+### Usage
+
+Install this package with pip:
+
+```sh
+$ pip install osm2geojson
+```
+
+If you want to convert OSM xml or Overpass json/xml to Geojson you can import this lib and use one of 4 methods:
+
+- `json2shapes(dict json_from_overpass)` - to convert Overpass json to \*Shape-objects
+- `xml2shapes(str xml_from_osm)` - to convert OSM xml or Overpass xml to \*Shape-objects
+- `json2geojson(dict json_from_overpass)` - to convert Overpass json to Geojson
+- `xml2geojson(str xml_from_osm)` - to convert OSM xml or Overpass xml to Geojson
+
+Additional parameters for all functions:
+
+- `filter_used_refs` - (default: `True`) defines geometry filtration strategy (will return all geometry if set as `False`)
+- `log_level` - (default: `'ERROR'`) controls logging level (will print all logs if set as `'INFO'`). More details [here](https://docs.python.org/3/library/logging.html#logging-levels)
+- `area_keys` - (default: `None`) defines which keys and values of an area should be saved from the list of OSM tags, see `areaKeys.json` for the defaults
+- `polygon_features` - (default: `None`) defines a whitelist/blacklist of features to be included in resulting polygons, see `polygon-features.json` for the defaults
+- `raise_on_failure` - (default: `False`) controls whether to throw an exception when geometry generation fails
+
+Other handy methods:
+
+- `overpass_call(str query)` - runs query to overpass-api.de server (retries 5 times in case of error).
+- `shape_to_feature(Shape shape, dict properties)` - Converts Shape-object to GeoJSON with passed properties.
+
+**\*Shape-object - for convenience created simple dict to save Shapely object (geometry) and OSM-properties. Structure of this object:**
+
+```py
+shape_obj = {
+ 'shape': Point | LineString | Polygon ...,
+ 'properties': {
+ 'type': 'relation' | 'node' ...,
+ 'tags': { ... },
+ ...
+ }
+}
+```
+
+After installing via `pip`, the module may also be used as a `argparse`-based command-line script.
+Either use the script name directly or call Python with the `-m` option and the package name:
+
+```sh
+osm2geojson --help
+```
+
+```sh
+python3 -m osm2geojson --help
+```
+
+### Examples
+
+Convert OSM-xml to Geojson:
+
+```py
+import codecs
+import osm2geojson
+
+with codecs.open('file.osm', 'r', encoding='utf-8') as data:
+ xml = data.read()
+
+geojson = osm2geojson.xml2geojson(xml, filter_used_refs=False, log_level='INFO')
+# >> { "type": "FeatureCollection", "features": [ ... ] }
+```
+
+Convert OSM-json to Shape-objects:
+
+```py
+import codecs
+import osm2geojson
+
+with codecs.open('file.json', 'r', encoding='utf-8') as data:
+ json = data.read()
+
+shapes_with_props = osm2geojson.json2shapes(json)
+# >> [ { "shape": <Shapely-object>, "properties": {...} }, ... ]
+```
+
+### Development
+
+Clone project with submodules
+
+```sh
+$ git clone --recurse-submodules https://github.com/aspectumapp/osm2geojson.git
+```
+
+Setup package
+
+```sh
+$ python setup.py develop
+```
+
+Run tests
+
+```sh
+$ python -m unittest tests
+```
+
+Run single test
+
+```sh
+$ python tests/main.py TestOsm2GeoJsonMethods.test_barrier_wall
+```
+
+Update osm-polygon-features to last version (if you want last version)
+
+```sh
+$ ./update-osm-polygon-features.sh
+```
+
+### ToDo
+
+ * Add tests and examples for cli tool
+ * Add actions related to cli tool (more info https://github.com/aspectumapp/osm2geojson/pull/32#issuecomment-1073386381)
+
+
+%prep
+%autosetup -n osm2geojson-0.2.4
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-osm2geojson -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.4-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..c2f1f75
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+67ecc3b54f5720543a6ec5f896dc6b10 osm2geojson-0.2.4.tar.gz