diff options
Diffstat (limited to 'python-georss-ign-sismologia-client.spec')
| -rw-r--r-- | python-georss-ign-sismologia-client.spec | 353 |
1 files changed, 353 insertions, 0 deletions
diff --git a/python-georss-ign-sismologia-client.spec b/python-georss-ign-sismologia-client.spec new file mode 100644 index 0000000..eea86ee --- /dev/null +++ b/python-georss-ign-sismologia-client.spec @@ -0,0 +1,353 @@ +%global _empty_manifest_terminate_build 0 +Name: python-georss-ign-sismologia-client +Version: 0.6 +Release: 1 +Summary: A GeoRSS client library for the IGN Sismologia feed. +License: Apache-2.0 +URL: https://github.com/exxamalte/python-georss-ign-sismologia-client +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ef/44/d478eb8c1fb5c3e01d2615a1c4b0ff808103677b6b3c4150d6fcbd66f25b/georss_ign_sismologia_client-0.6.tar.gz +BuildArch: noarch + +Requires: python3-georss-client +Requires: python3-dateparser + +%description +# python-georss-ign-sismologia-client + +[](https://github.com/exxamalte/python-georss-ign-sismologia-client/actions?workflow=CI) +[](https://codecov.io/gh/exxamalte/python-georss-ign-sismologia-client) +[](https://pypi.python.org/pypi/georss-ign-sismologia-client) +[](https://pypi.python.org/pypi/georss-ign-sismologia-client) + +This library provides convenient access to the +[Instituto Geográfico Nacional Sismología (Earthquakes) Feed](http://www.ign.es/) +feed. + +## Installation +`pip install georss-ign-sismologia-client` + +## Usage +See below for examples of how this library can be used for particular GeoRSS +feeds. After instantiating a particular class and supply the required +parameters, you can call `update` to retrieve the feed data. The return value +will be a tuple of a status code and the actual data in the form of a list of +feed entries specific to the selected feed. + +**Status Codes** +* _UPDATE_OK_: Update went fine and data was retrieved. The library may still return empty data, for example because no entries fulfilled the filter criteria. +* _UPDATE_OK_NO_DATA_: Update went fine but no data was retrieved, for example because the server indicated that there was not update since the last request. +* _UPDATE_ERROR_: Something went wrong during the update + +**Supported Filters** + +| Filter | | Description | +|-------------------|----------------------------|-------------| +| Radius | `filter_radius` | Radius in kilometers around the home coordinates in which events from feed are included. | +| Minimum Magnitude | `filter_minimum_magnitude` | Minimum magnitude as float value. Only events with a magnitude equal or above this value are included. | + +**Example** +```python +from georss_ign_sismologia_client import IgnSismologiaFeed +# Home Coordinates: Latitude: 40.38, Longitude: -3.72 +# Filter radius: 200 km +# Filter minimum magnitude: 3.0 +feed = IgnSismologiaFeed((40.38, -3.72), + filter_radius=200, + filter_minimum_magnitude=3.0) +status, entries = feed.update() +``` + +## Feed entry properties +Each feed entry is populated with the following properties - subject to +availability in GeoRSS feed: + +| Name | Description | +|------------------|-----------------------------------------------------------| +| geometry | All geometry details of this entry. | +| coordinates | Best coordinates (latitude, longitude) of this entry. | +| external_id | External id of this entry. | +| title | Title of this entry with date and time of the event. | +| attribution | Attribution of the feed. | +| distance_to_home | Distance in km of this entry to the home coordinates. | +| description | Textual description of this entry. | +| published | Published date of this entry. | +| magnitude | Magnitude value of this entry. | +| region | Region in formation of this entry. | +| image_url | Image URL showing a map of the entry. | + +## Feed Manager + +The Feed Manager helps managing feed updates over time, by notifying the +consumer of the feed about new feed entries, updates and removed entries +compared to the last feed update. + +* If the current feed update is the first one, then all feed entries will be + reported as new. The feed manager will keep track of all feed entries' + external IDs that it has successfully processed. +* If the current feed update is not the first one, then the feed manager will + produce three sets: + * Feed entries that were not in the previous feed update but are in the + current feed update will be reported as new. + * Feed entries that were in the previous feed update and are still in the + current feed update will be reported as to be updated. + * Feed entries that were in the previous feed update but are not in the + current feed update will be reported to be removed. +* If the current update fails, then all feed entries processed in the previous + feed update will be reported to be removed. + +After a successful update from the feed, the feed manager will provide two +different dates: + +* `last_update` will be the timestamp of the last successful update from the + feed. This date may be useful if the consumer of this library wants to + treat intermittent errors from feed updates differently. +* `last_timestamp` will be the latest timestamp extracted from the feed data. + This requires that the underlying feed data actually contains a suitable + date. This date may be useful if the consumer of this library wants to + process feed entries differently if they haven't actually been updated. + + +%package -n python3-georss-ign-sismologia-client +Summary: A GeoRSS client library for the IGN Sismologia feed. +Provides: python-georss-ign-sismologia-client +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-georss-ign-sismologia-client +# python-georss-ign-sismologia-client + +[](https://github.com/exxamalte/python-georss-ign-sismologia-client/actions?workflow=CI) +[](https://codecov.io/gh/exxamalte/python-georss-ign-sismologia-client) +[](https://pypi.python.org/pypi/georss-ign-sismologia-client) +[](https://pypi.python.org/pypi/georss-ign-sismologia-client) + +This library provides convenient access to the +[Instituto Geográfico Nacional Sismología (Earthquakes) Feed](http://www.ign.es/) +feed. + +## Installation +`pip install georss-ign-sismologia-client` + +## Usage +See below for examples of how this library can be used for particular GeoRSS +feeds. After instantiating a particular class and supply the required +parameters, you can call `update` to retrieve the feed data. The return value +will be a tuple of a status code and the actual data in the form of a list of +feed entries specific to the selected feed. + +**Status Codes** +* _UPDATE_OK_: Update went fine and data was retrieved. The library may still return empty data, for example because no entries fulfilled the filter criteria. +* _UPDATE_OK_NO_DATA_: Update went fine but no data was retrieved, for example because the server indicated that there was not update since the last request. +* _UPDATE_ERROR_: Something went wrong during the update + +**Supported Filters** + +| Filter | | Description | +|-------------------|----------------------------|-------------| +| Radius | `filter_radius` | Radius in kilometers around the home coordinates in which events from feed are included. | +| Minimum Magnitude | `filter_minimum_magnitude` | Minimum magnitude as float value. Only events with a magnitude equal or above this value are included. | + +**Example** +```python +from georss_ign_sismologia_client import IgnSismologiaFeed +# Home Coordinates: Latitude: 40.38, Longitude: -3.72 +# Filter radius: 200 km +# Filter minimum magnitude: 3.0 +feed = IgnSismologiaFeed((40.38, -3.72), + filter_radius=200, + filter_minimum_magnitude=3.0) +status, entries = feed.update() +``` + +## Feed entry properties +Each feed entry is populated with the following properties - subject to +availability in GeoRSS feed: + +| Name | Description | +|------------------|-----------------------------------------------------------| +| geometry | All geometry details of this entry. | +| coordinates | Best coordinates (latitude, longitude) of this entry. | +| external_id | External id of this entry. | +| title | Title of this entry with date and time of the event. | +| attribution | Attribution of the feed. | +| distance_to_home | Distance in km of this entry to the home coordinates. | +| description | Textual description of this entry. | +| published | Published date of this entry. | +| magnitude | Magnitude value of this entry. | +| region | Region in formation of this entry. | +| image_url | Image URL showing a map of the entry. | + +## Feed Manager + +The Feed Manager helps managing feed updates over time, by notifying the +consumer of the feed about new feed entries, updates and removed entries +compared to the last feed update. + +* If the current feed update is the first one, then all feed entries will be + reported as new. The feed manager will keep track of all feed entries' + external IDs that it has successfully processed. +* If the current feed update is not the first one, then the feed manager will + produce three sets: + * Feed entries that were not in the previous feed update but are in the + current feed update will be reported as new. + * Feed entries that were in the previous feed update and are still in the + current feed update will be reported as to be updated. + * Feed entries that were in the previous feed update but are not in the + current feed update will be reported to be removed. +* If the current update fails, then all feed entries processed in the previous + feed update will be reported to be removed. + +After a successful update from the feed, the feed manager will provide two +different dates: + +* `last_update` will be the timestamp of the last successful update from the + feed. This date may be useful if the consumer of this library wants to + treat intermittent errors from feed updates differently. +* `last_timestamp` will be the latest timestamp extracted from the feed data. + This requires that the underlying feed data actually contains a suitable + date. This date may be useful if the consumer of this library wants to + process feed entries differently if they haven't actually been updated. + + +%package help +Summary: Development documents and examples for georss-ign-sismologia-client +Provides: python3-georss-ign-sismologia-client-doc +%description help +# python-georss-ign-sismologia-client + +[](https://github.com/exxamalte/python-georss-ign-sismologia-client/actions?workflow=CI) +[](https://codecov.io/gh/exxamalte/python-georss-ign-sismologia-client) +[](https://pypi.python.org/pypi/georss-ign-sismologia-client) +[](https://pypi.python.org/pypi/georss-ign-sismologia-client) + +This library provides convenient access to the +[Instituto Geográfico Nacional Sismología (Earthquakes) Feed](http://www.ign.es/) +feed. + +## Installation +`pip install georss-ign-sismologia-client` + +## Usage +See below for examples of how this library can be used for particular GeoRSS +feeds. After instantiating a particular class and supply the required +parameters, you can call `update` to retrieve the feed data. The return value +will be a tuple of a status code and the actual data in the form of a list of +feed entries specific to the selected feed. + +**Status Codes** +* _UPDATE_OK_: Update went fine and data was retrieved. The library may still return empty data, for example because no entries fulfilled the filter criteria. +* _UPDATE_OK_NO_DATA_: Update went fine but no data was retrieved, for example because the server indicated that there was not update since the last request. +* _UPDATE_ERROR_: Something went wrong during the update + +**Supported Filters** + +| Filter | | Description | +|-------------------|----------------------------|-------------| +| Radius | `filter_radius` | Radius in kilometers around the home coordinates in which events from feed are included. | +| Minimum Magnitude | `filter_minimum_magnitude` | Minimum magnitude as float value. Only events with a magnitude equal or above this value are included. | + +**Example** +```python +from georss_ign_sismologia_client import IgnSismologiaFeed +# Home Coordinates: Latitude: 40.38, Longitude: -3.72 +# Filter radius: 200 km +# Filter minimum magnitude: 3.0 +feed = IgnSismologiaFeed((40.38, -3.72), + filter_radius=200, + filter_minimum_magnitude=3.0) +status, entries = feed.update() +``` + +## Feed entry properties +Each feed entry is populated with the following properties - subject to +availability in GeoRSS feed: + +| Name | Description | +|------------------|-----------------------------------------------------------| +| geometry | All geometry details of this entry. | +| coordinates | Best coordinates (latitude, longitude) of this entry. | +| external_id | External id of this entry. | +| title | Title of this entry with date and time of the event. | +| attribution | Attribution of the feed. | +| distance_to_home | Distance in km of this entry to the home coordinates. | +| description | Textual description of this entry. | +| published | Published date of this entry. | +| magnitude | Magnitude value of this entry. | +| region | Region in formation of this entry. | +| image_url | Image URL showing a map of the entry. | + +## Feed Manager + +The Feed Manager helps managing feed updates over time, by notifying the +consumer of the feed about new feed entries, updates and removed entries +compared to the last feed update. + +* If the current feed update is the first one, then all feed entries will be + reported as new. The feed manager will keep track of all feed entries' + external IDs that it has successfully processed. +* If the current feed update is not the first one, then the feed manager will + produce three sets: + * Feed entries that were not in the previous feed update but are in the + current feed update will be reported as new. + * Feed entries that were in the previous feed update and are still in the + current feed update will be reported as to be updated. + * Feed entries that were in the previous feed update but are not in the + current feed update will be reported to be removed. +* If the current update fails, then all feed entries processed in the previous + feed update will be reported to be removed. + +After a successful update from the feed, the feed manager will provide two +different dates: + +* `last_update` will be the timestamp of the last successful update from the + feed. This date may be useful if the consumer of this library wants to + treat intermittent errors from feed updates differently. +* `last_timestamp` will be the latest timestamp extracted from the feed data. + This requires that the underlying feed data actually contains a suitable + date. This date may be useful if the consumer of this library wants to + process feed entries differently if they haven't actually been updated. + + +%prep +%autosetup -n georss-ign-sismologia-client-0.6 + +%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-georss-ign-sismologia-client -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6-1 +- Package Spec generated |
