From 56bc143468550fd82ddcd0f372af2ce901790bf0 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Fri, 5 May 2023 10:12:28 +0000 Subject: automatic import of python-aio-geojson-nsw-rfs-incidents --- .gitignore | 1 + python-aio-geojson-nsw-rfs-incidents.spec | 429 ++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 431 insertions(+) create mode 100644 python-aio-geojson-nsw-rfs-incidents.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..f338291 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/aio_geojson_nsw_rfs_incidents-0.6.tar.gz diff --git a/python-aio-geojson-nsw-rfs-incidents.spec b/python-aio-geojson-nsw-rfs-incidents.spec new file mode 100644 index 0000000..9408635 --- /dev/null +++ b/python-aio-geojson-nsw-rfs-incidents.spec @@ -0,0 +1,429 @@ +%global _empty_manifest_terminate_build 0 +Name: python-aio-geojson-nsw-rfs-incidents +Version: 0.6 +Release: 1 +Summary: An async GeoJSON client library for NSW Rural Fire Service Incidents. +License: Apache-2.0 +URL: https://github.com/exxamalte/python-aio-geojson-nsw-rfs-incidents +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/af/01/e9189daf8cdaea046ebd6cbfa2852bcb1ccc3041f5f3f8a72d516d00af06/aio_geojson_nsw_rfs_incidents-0.6.tar.gz +BuildArch: noarch + +Requires: python3-aio-geojson-client +Requires: python3-aiohttp +Requires: python3-pytz + +%description +# python-aio-geojson-nsw-rfs-incidents + +[![Build Status](https://github.com/exxamalte/python-aio-geojson-nsw-rfs-incidents/workflows/CI/badge.svg?branch=master)](https://github.com/exxamalte/python-aio-geojson-nsw-rfs-incidents/actions?workflow=CI) +[![codecov](https://codecov.io/gh/exxamalte/python-aio-geojson-nsw-rfs-incidents/branch/master/graph/badge.svg?token=7G2BWWSYRZ)](https://codecov.io/gh/exxamalte/python-aio-geojson-nsw-rfs-incidents) +[![PyPi](https://img.shields.io/pypi/v/aio-geojson-nsw-rfs-incidents.svg)](https://pypi.python.org/pypi/aio-geojson-nsw-rfs-incidents) +[![Version](https://img.shields.io/pypi/pyversions/aio-geojson-nsw-rfs-incidents.svg)](https://pypi.python.org/pypi/aio-geojson-nsw-rfs-incidents) + +This library provides convenient async access to the [NSW Rural Fire Service](https://www.rfs.nsw.gov.au/fire-information/fires-near-me) incidents feed. + +## Installation +`pip install aio-geojson-nsw-rfs-incidents` + +## Usage +See below for examples of how this library can be used. After instantiating a +particular class - feed or feed manager - 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 +* _OK_: Update went fine and data was retrieved. The library may still + return empty data, for example because no entries fulfilled the filter + criteria. +* _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. +* _ERROR_: Something went wrong during the update + +**Parameters** + +| Parameter | Description | +|--------------------|-------------------------------------------| +| `home_coordinates` | Coordinates (tuple of latitude/longitude) | + +**Supported Filters** + +| Filter | | Description | +|------------|---------------------|-------------| +| Radius | `filter_radius` | Radius in kilometers around the home coordinates in which events from feed are included. | +| Categories | `filter_categories` | Array of category names. Only events with a category matching any of these is included. | + +**Example** +```python +import asyncio +from aiohttp import ClientSession +from aio_geojson_nsw_rfs_incidents import NswRuralFireServiceIncidentsFeed +async def main() -> None: + async with ClientSession() as websession: + # Home Coordinates: Latitude: -33.0, Longitude: 150.0 + # Filter radius: 50 km + # Filter categories: 'Advice' + feed = NswRuralFireServiceIncidentsFeed(websession, + (-33.0, 150.0), + filter_radius=50, + filter_categories=['Advice']) + status, entries = await feed.update() + print(status) + print(entries) +asyncio.get_event_loop().run_until_complete(main()) +``` + +## Feed entry properties +Each feed entry is populated with the following properties: + +| Name | Description | Feed attribute | +|--------------------|-----------------------------------------------------------------------------------------------------|----------------| +| geometry | All geometry details of this entry. | `geometry` | +| coordinates | Best coordinates (latitude, longitude) of this entry. | `geometry` | +| external_id | The unique public identifier for this incident. | `guid` | +| title | Title of this entry. | `title` | +| attribution | Attribution of the feed. | n/a | +| distance_to_home | Distance in km of this entry to the home coordinates. | n/a | +| category | The alert level of the incident ('Emergency Warning', 'Watch and Act', 'Advice','Not Applicable'). | `category` | +| publication_date | The publication date of the incidents. | `pubDate` | +| description | The description of the incident. | `description` | +| location | Location description of the incident. | `description` -> `LOCATION` | +| council_area | Council are this incident falls into. | `description` -> `COUNCIL AREA` | +| status | Status of the incident. | `description` -> `STATUS` | +| type | Type of the incident (e.g. Bush Fire, Grass Fire, Hazard Reduction). | `description` -> `TYPE` | +| fire | Indicated if this incident is a fire or not (`True`/`False`). | `description` -> `FIRE` | +| size | Size in ha. | `description` -> `SIZE` | +| responsible_agency | Agency responsible for this incident. | `description` -> `RESPONSIBLE AGENCY` | + + +## 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 provides two +different dates: + +* `last_update` will be the timestamp of the last update from the feed + irrespective of whether it was successful or not. +* `last_update_successful` 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` (optional, depends on the feed data) 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-aio-geojson-nsw-rfs-incidents +Summary: An async GeoJSON client library for NSW Rural Fire Service Incidents. +Provides: python-aio-geojson-nsw-rfs-incidents +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-aio-geojson-nsw-rfs-incidents +# python-aio-geojson-nsw-rfs-incidents + +[![Build Status](https://github.com/exxamalte/python-aio-geojson-nsw-rfs-incidents/workflows/CI/badge.svg?branch=master)](https://github.com/exxamalte/python-aio-geojson-nsw-rfs-incidents/actions?workflow=CI) +[![codecov](https://codecov.io/gh/exxamalte/python-aio-geojson-nsw-rfs-incidents/branch/master/graph/badge.svg?token=7G2BWWSYRZ)](https://codecov.io/gh/exxamalte/python-aio-geojson-nsw-rfs-incidents) +[![PyPi](https://img.shields.io/pypi/v/aio-geojson-nsw-rfs-incidents.svg)](https://pypi.python.org/pypi/aio-geojson-nsw-rfs-incidents) +[![Version](https://img.shields.io/pypi/pyversions/aio-geojson-nsw-rfs-incidents.svg)](https://pypi.python.org/pypi/aio-geojson-nsw-rfs-incidents) + +This library provides convenient async access to the [NSW Rural Fire Service](https://www.rfs.nsw.gov.au/fire-information/fires-near-me) incidents feed. + +## Installation +`pip install aio-geojson-nsw-rfs-incidents` + +## Usage +See below for examples of how this library can be used. After instantiating a +particular class - feed or feed manager - 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 +* _OK_: Update went fine and data was retrieved. The library may still + return empty data, for example because no entries fulfilled the filter + criteria. +* _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. +* _ERROR_: Something went wrong during the update + +**Parameters** + +| Parameter | Description | +|--------------------|-------------------------------------------| +| `home_coordinates` | Coordinates (tuple of latitude/longitude) | + +**Supported Filters** + +| Filter | | Description | +|------------|---------------------|-------------| +| Radius | `filter_radius` | Radius in kilometers around the home coordinates in which events from feed are included. | +| Categories | `filter_categories` | Array of category names. Only events with a category matching any of these is included. | + +**Example** +```python +import asyncio +from aiohttp import ClientSession +from aio_geojson_nsw_rfs_incidents import NswRuralFireServiceIncidentsFeed +async def main() -> None: + async with ClientSession() as websession: + # Home Coordinates: Latitude: -33.0, Longitude: 150.0 + # Filter radius: 50 km + # Filter categories: 'Advice' + feed = NswRuralFireServiceIncidentsFeed(websession, + (-33.0, 150.0), + filter_radius=50, + filter_categories=['Advice']) + status, entries = await feed.update() + print(status) + print(entries) +asyncio.get_event_loop().run_until_complete(main()) +``` + +## Feed entry properties +Each feed entry is populated with the following properties: + +| Name | Description | Feed attribute | +|--------------------|-----------------------------------------------------------------------------------------------------|----------------| +| geometry | All geometry details of this entry. | `geometry` | +| coordinates | Best coordinates (latitude, longitude) of this entry. | `geometry` | +| external_id | The unique public identifier for this incident. | `guid` | +| title | Title of this entry. | `title` | +| attribution | Attribution of the feed. | n/a | +| distance_to_home | Distance in km of this entry to the home coordinates. | n/a | +| category | The alert level of the incident ('Emergency Warning', 'Watch and Act', 'Advice','Not Applicable'). | `category` | +| publication_date | The publication date of the incidents. | `pubDate` | +| description | The description of the incident. | `description` | +| location | Location description of the incident. | `description` -> `LOCATION` | +| council_area | Council are this incident falls into. | `description` -> `COUNCIL AREA` | +| status | Status of the incident. | `description` -> `STATUS` | +| type | Type of the incident (e.g. Bush Fire, Grass Fire, Hazard Reduction). | `description` -> `TYPE` | +| fire | Indicated if this incident is a fire or not (`True`/`False`). | `description` -> `FIRE` | +| size | Size in ha. | `description` -> `SIZE` | +| responsible_agency | Agency responsible for this incident. | `description` -> `RESPONSIBLE AGENCY` | + + +## 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 provides two +different dates: + +* `last_update` will be the timestamp of the last update from the feed + irrespective of whether it was successful or not. +* `last_update_successful` 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` (optional, depends on the feed data) 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 aio-geojson-nsw-rfs-incidents +Provides: python3-aio-geojson-nsw-rfs-incidents-doc +%description help +# python-aio-geojson-nsw-rfs-incidents + +[![Build Status](https://github.com/exxamalte/python-aio-geojson-nsw-rfs-incidents/workflows/CI/badge.svg?branch=master)](https://github.com/exxamalte/python-aio-geojson-nsw-rfs-incidents/actions?workflow=CI) +[![codecov](https://codecov.io/gh/exxamalte/python-aio-geojson-nsw-rfs-incidents/branch/master/graph/badge.svg?token=7G2BWWSYRZ)](https://codecov.io/gh/exxamalte/python-aio-geojson-nsw-rfs-incidents) +[![PyPi](https://img.shields.io/pypi/v/aio-geojson-nsw-rfs-incidents.svg)](https://pypi.python.org/pypi/aio-geojson-nsw-rfs-incidents) +[![Version](https://img.shields.io/pypi/pyversions/aio-geojson-nsw-rfs-incidents.svg)](https://pypi.python.org/pypi/aio-geojson-nsw-rfs-incidents) + +This library provides convenient async access to the [NSW Rural Fire Service](https://www.rfs.nsw.gov.au/fire-information/fires-near-me) incidents feed. + +## Installation +`pip install aio-geojson-nsw-rfs-incidents` + +## Usage +See below for examples of how this library can be used. After instantiating a +particular class - feed or feed manager - 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 +* _OK_: Update went fine and data was retrieved. The library may still + return empty data, for example because no entries fulfilled the filter + criteria. +* _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. +* _ERROR_: Something went wrong during the update + +**Parameters** + +| Parameter | Description | +|--------------------|-------------------------------------------| +| `home_coordinates` | Coordinates (tuple of latitude/longitude) | + +**Supported Filters** + +| Filter | | Description | +|------------|---------------------|-------------| +| Radius | `filter_radius` | Radius in kilometers around the home coordinates in which events from feed are included. | +| Categories | `filter_categories` | Array of category names. Only events with a category matching any of these is included. | + +**Example** +```python +import asyncio +from aiohttp import ClientSession +from aio_geojson_nsw_rfs_incidents import NswRuralFireServiceIncidentsFeed +async def main() -> None: + async with ClientSession() as websession: + # Home Coordinates: Latitude: -33.0, Longitude: 150.0 + # Filter radius: 50 km + # Filter categories: 'Advice' + feed = NswRuralFireServiceIncidentsFeed(websession, + (-33.0, 150.0), + filter_radius=50, + filter_categories=['Advice']) + status, entries = await feed.update() + print(status) + print(entries) +asyncio.get_event_loop().run_until_complete(main()) +``` + +## Feed entry properties +Each feed entry is populated with the following properties: + +| Name | Description | Feed attribute | +|--------------------|-----------------------------------------------------------------------------------------------------|----------------| +| geometry | All geometry details of this entry. | `geometry` | +| coordinates | Best coordinates (latitude, longitude) of this entry. | `geometry` | +| external_id | The unique public identifier for this incident. | `guid` | +| title | Title of this entry. | `title` | +| attribution | Attribution of the feed. | n/a | +| distance_to_home | Distance in km of this entry to the home coordinates. | n/a | +| category | The alert level of the incident ('Emergency Warning', 'Watch and Act', 'Advice','Not Applicable'). | `category` | +| publication_date | The publication date of the incidents. | `pubDate` | +| description | The description of the incident. | `description` | +| location | Location description of the incident. | `description` -> `LOCATION` | +| council_area | Council are this incident falls into. | `description` -> `COUNCIL AREA` | +| status | Status of the incident. | `description` -> `STATUS` | +| type | Type of the incident (e.g. Bush Fire, Grass Fire, Hazard Reduction). | `description` -> `TYPE` | +| fire | Indicated if this incident is a fire or not (`True`/`False`). | `description` -> `FIRE` | +| size | Size in ha. | `description` -> `SIZE` | +| responsible_agency | Agency responsible for this incident. | `description` -> `RESPONSIBLE AGENCY` | + + +## 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 provides two +different dates: + +* `last_update` will be the timestamp of the last update from the feed + irrespective of whether it was successful or not. +* `last_update_successful` 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` (optional, depends on the feed data) 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 aio-geojson-nsw-rfs-incidents-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-aio-geojson-nsw-rfs-incidents -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot - 0.6-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..1941bc3 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +c938d79f58434f50e81d43ffd10c0947 aio_geojson_nsw_rfs_incidents-0.6.tar.gz -- cgit v1.2.3