diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-05 06:20:27 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 06:20:27 +0000 |
commit | 439a194f5c843cf9e557c4e9956d419daddca83c (patch) | |
tree | 5be1b1703da4cf136d7d32620f448ce6b186913e | |
parent | d8a11786f0ce99205ec785a9813447d88d09f2b2 (diff) |
automatic import of python-aiorecollectopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-aiorecollect.spec | 475 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 477 insertions, 0 deletions
@@ -0,0 +1 @@ +/aiorecollect-2022.10.0.tar.gz diff --git a/python-aiorecollect.spec b/python-aiorecollect.spec new file mode 100644 index 0000000..492cedc --- /dev/null +++ b/python-aiorecollect.spec @@ -0,0 +1,475 @@ +%global _empty_manifest_terminate_build 0 +Name: python-aiorecollect +Version: 2022.10.0 +Release: 1 +Summary: A Python 3, asyncio-based library for the ReCollect Waste API +License: MIT +URL: https://github.com/bachya/aiorecollect +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/d0/f4/139ba3b4839b8cfab75c12a6993f0aae4a06bcef6188bddd28e85539f86b/aiorecollect-2022.10.0.tar.gz +BuildArch: noarch + +Requires: python3-aiohttp + +%description +# 🗑 aiorecollect: A Python 3 Library for Pinboard + +[](https://github.com/bachya/aiorecollect/actions) +[](https://pypi.python.org/pypi/aiorecollect) +[](https://pypi.python.org/pypi/aiorecollect) +[](https://github.com/bachya/aiorecollect/blob/main/LICENSE) +[](https://codecov.io/gh/bachya/aiorecollect) +[](https://codeclimate.com/github/bachya/aiorecollect/maintainability) +[](https://saythanks.io/to/bachya) + +<a href="https://www.buymeacoffee.com/bachya1208P" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a> + +`aiorecollect` is a Python 3, asyncio-based library for the ReCollect Waste API. It +allows users to programmatically retrieve schedules for waste removal in their area, +including trash, recycling, compost, and more. + +Special thanks to @stealthhacker for the inspiration! + +# Installation + +```bash +pip install aiorecollect +``` + +# Python Versions + +`aiorecollect` is currently supported on: + +- Python 3.9 +- Python 3.10 +- Python 3.11 + +# Place and Service IDs + +To use `aiorecollect`, you must know both your ReCollect Place and Service IDs. + +In general, cities/municipalities that utilize ReCollect will give you a way to +subscribe to a calendar with pickup dates. If you examine the iCal URL for this +calendar, the Place and Service IDs are embedded in it: + +``` +webcal://recollect.a.ssl.fastly.net/api/places/PLACE_ID/services/SERVICE_ID/events.en-US.ics +``` + +# Usage + +```python +import asyncio +from datetime import date + +from aiorecollect import Client + + +async def main() -> None: + """Run.""" + client = await Client("<PLACE ID>", "<SERVICE ID>") + + # The client has a few attributes that you can access: + client.place_id + client.service_id + + # Get all pickup events on the calendar: + pickup_events = await client.async_get_pickup_events() + + # ...or get all pickup events within a certain date range: + pickup_events = await client.async_get_pickup_events( + start_date=date(2020, 10, 1), end_date=date(2020, 10, 31) + ) + + # ...or just get the next pickup event: + next_pickup = await client.async_get_next_pickup_event() + + +asyncio.run(main()) +``` + +## The `PickupEvent` Object + +The `PickupEvent` object that is returned from the above calls comes with three +properties: + +- `date`: a `datetime.date` that denotes the pickup date +- `pickup_types`: a list of `PickupType` objects that will occur with this event +- `area_name`: the name of the area in which the event is occurring + +## The `PickupType` Object + +The `PickupType` object contains the "internal" name of the pickup type _and_ a +human-friendly representation when it exists: + +- `name`: the internal name of the pickup type +- `friendly_name`: the humany-friendly name of the pickup type (if it exists) + +## Connection Pooling + +By default, the library creates a new connection to ReCollect with each coroutine. If +you are calling a large number of coroutines (or merely want to squeeze out every second +of runtime savings possible), an +[`aiohttp`](https://github.com/aio-libs/aiohttp) `ClientSession` can be used for connection +pooling: + +```python +import asyncio + +from aiohttp import ClientSession + +from aiorecollect import Client + + +async def main() -> None: + """Run.""" + async with ClientSession() as session: + client = await Client("<PLACE ID>", "<SERVICE ID>", session=session) + + # Get to work... + + +asyncio.run(main()) +``` + +# Contributing + +1. [Check for open features/bugs](https://github.com/bachya/aiorecollect/issues) + or [initiate a discussion on one](https://github.com/bachya/aiorecollect/issues/new). +2. [Fork the repository](https://github.com/bachya/aiorecollect/fork). +3. (_optional, but highly recommended_) Create a virtual environment: `python3 -m venv .venv` +4. (_optional, but highly recommended_) Enter the virtual environment: `source ./.venv/bin/activate` +5. Install the dev environment: `script/setup` +6. Code your new feature or bug fix. +7. Write tests that cover your new functionality. +8. Run tests and ensure 100% code coverage: `poetry run pytest --cov aiorecollect tests` +9. Update `README.md` with any new documentation. +10. Add yourself to `AUTHORS.md`. +11. Submit a pull request! + + +%package -n python3-aiorecollect +Summary: A Python 3, asyncio-based library for the ReCollect Waste API +Provides: python-aiorecollect +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-aiorecollect +# 🗑 aiorecollect: A Python 3 Library for Pinboard + +[](https://github.com/bachya/aiorecollect/actions) +[](https://pypi.python.org/pypi/aiorecollect) +[](https://pypi.python.org/pypi/aiorecollect) +[](https://github.com/bachya/aiorecollect/blob/main/LICENSE) +[](https://codecov.io/gh/bachya/aiorecollect) +[](https://codeclimate.com/github/bachya/aiorecollect/maintainability) +[](https://saythanks.io/to/bachya) + +<a href="https://www.buymeacoffee.com/bachya1208P" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a> + +`aiorecollect` is a Python 3, asyncio-based library for the ReCollect Waste API. It +allows users to programmatically retrieve schedules for waste removal in their area, +including trash, recycling, compost, and more. + +Special thanks to @stealthhacker for the inspiration! + +# Installation + +```bash +pip install aiorecollect +``` + +# Python Versions + +`aiorecollect` is currently supported on: + +- Python 3.9 +- Python 3.10 +- Python 3.11 + +# Place and Service IDs + +To use `aiorecollect`, you must know both your ReCollect Place and Service IDs. + +In general, cities/municipalities that utilize ReCollect will give you a way to +subscribe to a calendar with pickup dates. If you examine the iCal URL for this +calendar, the Place and Service IDs are embedded in it: + +``` +webcal://recollect.a.ssl.fastly.net/api/places/PLACE_ID/services/SERVICE_ID/events.en-US.ics +``` + +# Usage + +```python +import asyncio +from datetime import date + +from aiorecollect import Client + + +async def main() -> None: + """Run.""" + client = await Client("<PLACE ID>", "<SERVICE ID>") + + # The client has a few attributes that you can access: + client.place_id + client.service_id + + # Get all pickup events on the calendar: + pickup_events = await client.async_get_pickup_events() + + # ...or get all pickup events within a certain date range: + pickup_events = await client.async_get_pickup_events( + start_date=date(2020, 10, 1), end_date=date(2020, 10, 31) + ) + + # ...or just get the next pickup event: + next_pickup = await client.async_get_next_pickup_event() + + +asyncio.run(main()) +``` + +## The `PickupEvent` Object + +The `PickupEvent` object that is returned from the above calls comes with three +properties: + +- `date`: a `datetime.date` that denotes the pickup date +- `pickup_types`: a list of `PickupType` objects that will occur with this event +- `area_name`: the name of the area in which the event is occurring + +## The `PickupType` Object + +The `PickupType` object contains the "internal" name of the pickup type _and_ a +human-friendly representation when it exists: + +- `name`: the internal name of the pickup type +- `friendly_name`: the humany-friendly name of the pickup type (if it exists) + +## Connection Pooling + +By default, the library creates a new connection to ReCollect with each coroutine. If +you are calling a large number of coroutines (or merely want to squeeze out every second +of runtime savings possible), an +[`aiohttp`](https://github.com/aio-libs/aiohttp) `ClientSession` can be used for connection +pooling: + +```python +import asyncio + +from aiohttp import ClientSession + +from aiorecollect import Client + + +async def main() -> None: + """Run.""" + async with ClientSession() as session: + client = await Client("<PLACE ID>", "<SERVICE ID>", session=session) + + # Get to work... + + +asyncio.run(main()) +``` + +# Contributing + +1. [Check for open features/bugs](https://github.com/bachya/aiorecollect/issues) + or [initiate a discussion on one](https://github.com/bachya/aiorecollect/issues/new). +2. [Fork the repository](https://github.com/bachya/aiorecollect/fork). +3. (_optional, but highly recommended_) Create a virtual environment: `python3 -m venv .venv` +4. (_optional, but highly recommended_) Enter the virtual environment: `source ./.venv/bin/activate` +5. Install the dev environment: `script/setup` +6. Code your new feature or bug fix. +7. Write tests that cover your new functionality. +8. Run tests and ensure 100% code coverage: `poetry run pytest --cov aiorecollect tests` +9. Update `README.md` with any new documentation. +10. Add yourself to `AUTHORS.md`. +11. Submit a pull request! + + +%package help +Summary: Development documents and examples for aiorecollect +Provides: python3-aiorecollect-doc +%description help +# 🗑 aiorecollect: A Python 3 Library for Pinboard + +[](https://github.com/bachya/aiorecollect/actions) +[](https://pypi.python.org/pypi/aiorecollect) +[](https://pypi.python.org/pypi/aiorecollect) +[](https://github.com/bachya/aiorecollect/blob/main/LICENSE) +[](https://codecov.io/gh/bachya/aiorecollect) +[](https://codeclimate.com/github/bachya/aiorecollect/maintainability) +[](https://saythanks.io/to/bachya) + +<a href="https://www.buymeacoffee.com/bachya1208P" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a> + +`aiorecollect` is a Python 3, asyncio-based library for the ReCollect Waste API. It +allows users to programmatically retrieve schedules for waste removal in their area, +including trash, recycling, compost, and more. + +Special thanks to @stealthhacker for the inspiration! + +# Installation + +```bash +pip install aiorecollect +``` + +# Python Versions + +`aiorecollect` is currently supported on: + +- Python 3.9 +- Python 3.10 +- Python 3.11 + +# Place and Service IDs + +To use `aiorecollect`, you must know both your ReCollect Place and Service IDs. + +In general, cities/municipalities that utilize ReCollect will give you a way to +subscribe to a calendar with pickup dates. If you examine the iCal URL for this +calendar, the Place and Service IDs are embedded in it: + +``` +webcal://recollect.a.ssl.fastly.net/api/places/PLACE_ID/services/SERVICE_ID/events.en-US.ics +``` + +# Usage + +```python +import asyncio +from datetime import date + +from aiorecollect import Client + + +async def main() -> None: + """Run.""" + client = await Client("<PLACE ID>", "<SERVICE ID>") + + # The client has a few attributes that you can access: + client.place_id + client.service_id + + # Get all pickup events on the calendar: + pickup_events = await client.async_get_pickup_events() + + # ...or get all pickup events within a certain date range: + pickup_events = await client.async_get_pickup_events( + start_date=date(2020, 10, 1), end_date=date(2020, 10, 31) + ) + + # ...or just get the next pickup event: + next_pickup = await client.async_get_next_pickup_event() + + +asyncio.run(main()) +``` + +## The `PickupEvent` Object + +The `PickupEvent` object that is returned from the above calls comes with three +properties: + +- `date`: a `datetime.date` that denotes the pickup date +- `pickup_types`: a list of `PickupType` objects that will occur with this event +- `area_name`: the name of the area in which the event is occurring + +## The `PickupType` Object + +The `PickupType` object contains the "internal" name of the pickup type _and_ a +human-friendly representation when it exists: + +- `name`: the internal name of the pickup type +- `friendly_name`: the humany-friendly name of the pickup type (if it exists) + +## Connection Pooling + +By default, the library creates a new connection to ReCollect with each coroutine. If +you are calling a large number of coroutines (or merely want to squeeze out every second +of runtime savings possible), an +[`aiohttp`](https://github.com/aio-libs/aiohttp) `ClientSession` can be used for connection +pooling: + +```python +import asyncio + +from aiohttp import ClientSession + +from aiorecollect import Client + + +async def main() -> None: + """Run.""" + async with ClientSession() as session: + client = await Client("<PLACE ID>", "<SERVICE ID>", session=session) + + # Get to work... + + +asyncio.run(main()) +``` + +# Contributing + +1. [Check for open features/bugs](https://github.com/bachya/aiorecollect/issues) + or [initiate a discussion on one](https://github.com/bachya/aiorecollect/issues/new). +2. [Fork the repository](https://github.com/bachya/aiorecollect/fork). +3. (_optional, but highly recommended_) Create a virtual environment: `python3 -m venv .venv` +4. (_optional, but highly recommended_) Enter the virtual environment: `source ./.venv/bin/activate` +5. Install the dev environment: `script/setup` +6. Code your new feature or bug fix. +7. Write tests that cover your new functionality. +8. Run tests and ensure 100% code coverage: `poetry run pytest --cov aiorecollect tests` +9. Update `README.md` with any new documentation. +10. Add yourself to `AUTHORS.md`. +11. Submit a pull request! + + +%prep +%autosetup -n aiorecollect-2022.10.0 + +%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-aiorecollect -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 2022.10.0-1 +- Package Spec generated @@ -0,0 +1 @@ +b53504fb7bc28564d6132909206becdd aiorecollect-2022.10.0.tar.gz |