diff options
Diffstat (limited to 'python-py17track.spec')
| -rw-r--r-- | python-py17track.spec | 441 |
1 files changed, 441 insertions, 0 deletions
diff --git a/python-py17track.spec b/python-py17track.spec new file mode 100644 index 0000000..e13ca08 --- /dev/null +++ b/python-py17track.spec @@ -0,0 +1,441 @@ +%global _empty_manifest_terminate_build 0 +Name: python-py17track +Version: 2021.12.2 +Release: 1 +Summary: A Simple Python API for 17track.net +License: MIT +URL: https://github.com/bachya/py17track +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/22/ec/1f1e68c1a0790a8e59629728761e90200116c33593d40888ee0b2a4ca0a5/py17track-2021.12.2.tar.gz +BuildArch: noarch + +Requires: python3-aiohttp +Requires: python3-attrs +Requires: python3-pytz + +%description +# 📦 py17track: A Simple Python API for 17track.net + +[](https://github.com/bachya/py17track/actions) +[](https://pypi.python.org/pypi/py17track) +[](https://pypi.python.org/pypi/py17track) +[](https://github.com/bachya/py17track/blob/master/LICENSE) +[](https://codecov.io/gh/bachya/py17track) +[](https://codeclimate.com/github/bachya/py17track/maintainability) +[](https://saythanks.io/to/bachya) + +`py17track` is a simple Python library to track packages in +[17track.net](http://www.17track.net/) accounts. + +Since this is uses an unofficial API, there's no guarantee that 17track.net +will provide every field for every package, all the time. Additionally, this +API may stop working at any moment. + +# Python Versions + +`py17track` is currently supported on: + +* Python 3.6 +* Python 3.7 +* Python 3.8 +* Python 3.9 +* Python 3.10 + +# Installation + +```python +pip install py17track +``` + +# Usage + +```python +import asyncio + +from aiohttp import ClientSession + +from py17track import Client + + +async def main() -> None: + """Run!""" + client = Client() + + # Login to 17track.net: + await client.profile.login('<EMAIL>', '<PASSWORD>') + + # Get the account ID: + client.profile.account_id + # >>> 1234567890987654321 + + # Get a summary of the user's packages: + summary = await client.profile.summary() + # >>> {'In Transit': 3, 'Expired': 3, ... } + + # Get all packages associated with a user's account: + packages = await client.profile.packages() + # >>> [py17track.package.Package(..), ...] + + # Add new packages by tracking number + await client.profile.add_package('<TRACKING NUMBER>', '<FRIENDLY NAME>') + + +asyncio.run(main()) +``` + +By default, the library creates a new connection to 17track 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 py17track import Client + + +async def main() -> None: + """Run!""" + async with ClientSession() as session: + client = Client(session=session) + + # ... + + +asyncio.run(main()) +``` + +Each `Package` object has the following info: + +* `destination_country`: the country the package was shipped to +* `friendly_name`: the human-friendly name of the package +* `info`: a text description of the latest status +* `location`: the current location (if known) +* `timestamp`: the timestamp of the latest event +* `origin_country`: the country the package was shipped from +* `package_type`: the type of package (if known) +* `status`: the overall package status ("In Transit", "Delivered", etc.) +* `tracking_info_language`: the language of the tracking info +* `tracking_number`: the all-important tracking number + +# Contributing + +1. [Check for open features/bugs](https://github.com/bachya/py17track/issues) + or [initiate a discussion on one](https://github.com/bachya/py17track/issues/new). +2. [Fork the repository](https://github.com/bachya/py17track/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: `script/test` +9. Update `README.md` with any new documentation. +10. Add yourself to `AUTHORS.md`. +11. Submit a pull request! + + + +%package -n python3-py17track +Summary: A Simple Python API for 17track.net +Provides: python-py17track +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-py17track +# 📦 py17track: A Simple Python API for 17track.net + +[](https://github.com/bachya/py17track/actions) +[](https://pypi.python.org/pypi/py17track) +[](https://pypi.python.org/pypi/py17track) +[](https://github.com/bachya/py17track/blob/master/LICENSE) +[](https://codecov.io/gh/bachya/py17track) +[](https://codeclimate.com/github/bachya/py17track/maintainability) +[](https://saythanks.io/to/bachya) + +`py17track` is a simple Python library to track packages in +[17track.net](http://www.17track.net/) accounts. + +Since this is uses an unofficial API, there's no guarantee that 17track.net +will provide every field for every package, all the time. Additionally, this +API may stop working at any moment. + +# Python Versions + +`py17track` is currently supported on: + +* Python 3.6 +* Python 3.7 +* Python 3.8 +* Python 3.9 +* Python 3.10 + +# Installation + +```python +pip install py17track +``` + +# Usage + +```python +import asyncio + +from aiohttp import ClientSession + +from py17track import Client + + +async def main() -> None: + """Run!""" + client = Client() + + # Login to 17track.net: + await client.profile.login('<EMAIL>', '<PASSWORD>') + + # Get the account ID: + client.profile.account_id + # >>> 1234567890987654321 + + # Get a summary of the user's packages: + summary = await client.profile.summary() + # >>> {'In Transit': 3, 'Expired': 3, ... } + + # Get all packages associated with a user's account: + packages = await client.profile.packages() + # >>> [py17track.package.Package(..), ...] + + # Add new packages by tracking number + await client.profile.add_package('<TRACKING NUMBER>', '<FRIENDLY NAME>') + + +asyncio.run(main()) +``` + +By default, the library creates a new connection to 17track 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 py17track import Client + + +async def main() -> None: + """Run!""" + async with ClientSession() as session: + client = Client(session=session) + + # ... + + +asyncio.run(main()) +``` + +Each `Package` object has the following info: + +* `destination_country`: the country the package was shipped to +* `friendly_name`: the human-friendly name of the package +* `info`: a text description of the latest status +* `location`: the current location (if known) +* `timestamp`: the timestamp of the latest event +* `origin_country`: the country the package was shipped from +* `package_type`: the type of package (if known) +* `status`: the overall package status ("In Transit", "Delivered", etc.) +* `tracking_info_language`: the language of the tracking info +* `tracking_number`: the all-important tracking number + +# Contributing + +1. [Check for open features/bugs](https://github.com/bachya/py17track/issues) + or [initiate a discussion on one](https://github.com/bachya/py17track/issues/new). +2. [Fork the repository](https://github.com/bachya/py17track/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: `script/test` +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 py17track +Provides: python3-py17track-doc +%description help +# 📦 py17track: A Simple Python API for 17track.net + +[](https://github.com/bachya/py17track/actions) +[](https://pypi.python.org/pypi/py17track) +[](https://pypi.python.org/pypi/py17track) +[](https://github.com/bachya/py17track/blob/master/LICENSE) +[](https://codecov.io/gh/bachya/py17track) +[](https://codeclimate.com/github/bachya/py17track/maintainability) +[](https://saythanks.io/to/bachya) + +`py17track` is a simple Python library to track packages in +[17track.net](http://www.17track.net/) accounts. + +Since this is uses an unofficial API, there's no guarantee that 17track.net +will provide every field for every package, all the time. Additionally, this +API may stop working at any moment. + +# Python Versions + +`py17track` is currently supported on: + +* Python 3.6 +* Python 3.7 +* Python 3.8 +* Python 3.9 +* Python 3.10 + +# Installation + +```python +pip install py17track +``` + +# Usage + +```python +import asyncio + +from aiohttp import ClientSession + +from py17track import Client + + +async def main() -> None: + """Run!""" + client = Client() + + # Login to 17track.net: + await client.profile.login('<EMAIL>', '<PASSWORD>') + + # Get the account ID: + client.profile.account_id + # >>> 1234567890987654321 + + # Get a summary of the user's packages: + summary = await client.profile.summary() + # >>> {'In Transit': 3, 'Expired': 3, ... } + + # Get all packages associated with a user's account: + packages = await client.profile.packages() + # >>> [py17track.package.Package(..), ...] + + # Add new packages by tracking number + await client.profile.add_package('<TRACKING NUMBER>', '<FRIENDLY NAME>') + + +asyncio.run(main()) +``` + +By default, the library creates a new connection to 17track 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 py17track import Client + + +async def main() -> None: + """Run!""" + async with ClientSession() as session: + client = Client(session=session) + + # ... + + +asyncio.run(main()) +``` + +Each `Package` object has the following info: + +* `destination_country`: the country the package was shipped to +* `friendly_name`: the human-friendly name of the package +* `info`: a text description of the latest status +* `location`: the current location (if known) +* `timestamp`: the timestamp of the latest event +* `origin_country`: the country the package was shipped from +* `package_type`: the type of package (if known) +* `status`: the overall package status ("In Transit", "Delivered", etc.) +* `tracking_info_language`: the language of the tracking info +* `tracking_number`: the all-important tracking number + +# Contributing + +1. [Check for open features/bugs](https://github.com/bachya/py17track/issues) + or [initiate a discussion on one](https://github.com/bachya/py17track/issues/new). +2. [Fork the repository](https://github.com/bachya/py17track/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: `script/test` +9. Update `README.md` with any new documentation. +10. Add yourself to `AUTHORS.md`. +11. Submit a pull request! + + + +%prep +%autosetup -n py17track-2021.12.2 + +%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-py17track -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 2021.12.2-1 +- Package Spec generated |
