diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-18 04:02:40 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-18 04:02:40 +0000 |
| commit | 20b7e0961612579175c0ca8205971728dbdb2c08 (patch) | |
| tree | 33cc834adea71a71db376b093f5a92f77c565d1c | |
| parent | 27441ccd8597b53a4300fd9e2bda1aa96eec9677 (diff) | |
automatic import of python-thestorygraph-client
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-thestorygraph-client.spec | 406 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 408 insertions, 0 deletions
@@ -0,0 +1 @@ +/thestorygraph-client-0.1.6.tar.gz diff --git a/python-thestorygraph-client.spec b/python-thestorygraph-client.spec new file mode 100644 index 0000000..026f279 --- /dev/null +++ b/python-thestorygraph-client.spec @@ -0,0 +1,406 @@ +%global _empty_manifest_terminate_build 0 +Name: python-thestorygraph-client +Version: 0.1.6 +Release: 1 +Summary: A Simple Python Client for TheStoryGraph +License: MIT License +URL: https://github.com/altvod/thestorygraph-client +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/39/13/6a25628fab2107ad864efa653262c6fd72d2019baaf8c3a6d99902f39d26/thestorygraph-client-0.1.6.tar.gz +BuildArch: noarch + +Requires: python3-aiohttp +Requires: python3-attrs +Requires: python3-beautifulsoup4 +Requires: python3-requests +Requires: python3-yarl +Requires: python3-build +Requires: python3-twine +Requires: python3-mypy +Requires: python3-pytest +Requires: python3-types-requests + +%description +# thestorygraph-client + +A Simple Python Client for TheStoryGraph.com + +Sync and async clients as well as a model abstraction layer for the website. + +Since no public API is available, this library parses HTML via `BeautifulSoup4` +and loads the data into model objects. + + +## Installation + +```bash +pip install thestorygraph-client +``` + +## Examples + +### Search for books (sync) + +Find and print books related to `'SPQR'`: + +```python +from tsg.client import SyncTSGClient + +def print_search_result(search_text: str) -> None: + client = SyncTSGClient() + book_list = client.search(text=search_text) + for book in book_list: + print(f'{book.authors[0].name} - {book.title}') + +print_search_result('SPQR') +``` + +### Search for books (async) + +Same as above, but using the asynchronous client: + +```python +import asyncio +from tsg.client import AsyncTSGClient + +async def print_search_result(search_text: str) -> None: + client = AsyncTSGClient() + book_list = await client.get_browse(text=search_text) + for book in book_list: + print(f'{", ".join(book.author_names)} - {book.title}') + +asyncio.run(print_search_result('SPQR')) +``` + +The two clients have identical APIs (beside the fact that the latter is async). + +### Get a book by ID + +```python +import asyncio +from tsg.client import AsyncTSGClient + +async def print_book_by_id(book_id: str) -> None: + client = AsyncTSGClient() + book = await client.get_book(id=book_id) + print(f'{book.title} by {", ".join(book.author_names)}') + +asyncio.run(print_book_by_id('79b894b0-df12-4bb6-89d7-40288f28acc1')) +``` + +## Development and Testing + +### Configuring the test environment + +Install + +```bash +pip install -Ue .[testing] +``` + +### Testing + +Run the tests: + +```bash +pytest tests +``` + +And always validate typing: + +```bash +mypy src/tsg +``` + +Or simply + +```bash +make test +``` + +(it will run all test commands) + +## Links + +Homepage on GitHub: https://github.com/altvod/thestorygraph-client + +Project's page on PyPi: https://pypi.org/project/thestorygraph-client/ + +TheStoryGraph: https://thestorygraph.com/ + + + + +%package -n python3-thestorygraph-client +Summary: A Simple Python Client for TheStoryGraph +Provides: python-thestorygraph-client +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-thestorygraph-client +# thestorygraph-client + +A Simple Python Client for TheStoryGraph.com + +Sync and async clients as well as a model abstraction layer for the website. + +Since no public API is available, this library parses HTML via `BeautifulSoup4` +and loads the data into model objects. + + +## Installation + +```bash +pip install thestorygraph-client +``` + +## Examples + +### Search for books (sync) + +Find and print books related to `'SPQR'`: + +```python +from tsg.client import SyncTSGClient + +def print_search_result(search_text: str) -> None: + client = SyncTSGClient() + book_list = client.search(text=search_text) + for book in book_list: + print(f'{book.authors[0].name} - {book.title}') + +print_search_result('SPQR') +``` + +### Search for books (async) + +Same as above, but using the asynchronous client: + +```python +import asyncio +from tsg.client import AsyncTSGClient + +async def print_search_result(search_text: str) -> None: + client = AsyncTSGClient() + book_list = await client.get_browse(text=search_text) + for book in book_list: + print(f'{", ".join(book.author_names)} - {book.title}') + +asyncio.run(print_search_result('SPQR')) +``` + +The two clients have identical APIs (beside the fact that the latter is async). + +### Get a book by ID + +```python +import asyncio +from tsg.client import AsyncTSGClient + +async def print_book_by_id(book_id: str) -> None: + client = AsyncTSGClient() + book = await client.get_book(id=book_id) + print(f'{book.title} by {", ".join(book.author_names)}') + +asyncio.run(print_book_by_id('79b894b0-df12-4bb6-89d7-40288f28acc1')) +``` + +## Development and Testing + +### Configuring the test environment + +Install + +```bash +pip install -Ue .[testing] +``` + +### Testing + +Run the tests: + +```bash +pytest tests +``` + +And always validate typing: + +```bash +mypy src/tsg +``` + +Or simply + +```bash +make test +``` + +(it will run all test commands) + +## Links + +Homepage on GitHub: https://github.com/altvod/thestorygraph-client + +Project's page on PyPi: https://pypi.org/project/thestorygraph-client/ + +TheStoryGraph: https://thestorygraph.com/ + + + + +%package help +Summary: Development documents and examples for thestorygraph-client +Provides: python3-thestorygraph-client-doc +%description help +# thestorygraph-client + +A Simple Python Client for TheStoryGraph.com + +Sync and async clients as well as a model abstraction layer for the website. + +Since no public API is available, this library parses HTML via `BeautifulSoup4` +and loads the data into model objects. + + +## Installation + +```bash +pip install thestorygraph-client +``` + +## Examples + +### Search for books (sync) + +Find and print books related to `'SPQR'`: + +```python +from tsg.client import SyncTSGClient + +def print_search_result(search_text: str) -> None: + client = SyncTSGClient() + book_list = client.search(text=search_text) + for book in book_list: + print(f'{book.authors[0].name} - {book.title}') + +print_search_result('SPQR') +``` + +### Search for books (async) + +Same as above, but using the asynchronous client: + +```python +import asyncio +from tsg.client import AsyncTSGClient + +async def print_search_result(search_text: str) -> None: + client = AsyncTSGClient() + book_list = await client.get_browse(text=search_text) + for book in book_list: + print(f'{", ".join(book.author_names)} - {book.title}') + +asyncio.run(print_search_result('SPQR')) +``` + +The two clients have identical APIs (beside the fact that the latter is async). + +### Get a book by ID + +```python +import asyncio +from tsg.client import AsyncTSGClient + +async def print_book_by_id(book_id: str) -> None: + client = AsyncTSGClient() + book = await client.get_book(id=book_id) + print(f'{book.title} by {", ".join(book.author_names)}') + +asyncio.run(print_book_by_id('79b894b0-df12-4bb6-89d7-40288f28acc1')) +``` + +## Development and Testing + +### Configuring the test environment + +Install + +```bash +pip install -Ue .[testing] +``` + +### Testing + +Run the tests: + +```bash +pytest tests +``` + +And always validate typing: + +```bash +mypy src/tsg +``` + +Or simply + +```bash +make test +``` + +(it will run all test commands) + +## Links + +Homepage on GitHub: https://github.com/altvod/thestorygraph-client + +Project's page on PyPi: https://pypi.org/project/thestorygraph-client/ + +TheStoryGraph: https://thestorygraph.com/ + + + + +%prep +%autosetup -n thestorygraph-client-0.1.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-thestorygraph-client -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.6-1 +- Package Spec generated @@ -0,0 +1 @@ +db0a2a138cb6eeb4de3201d1aa55db75 thestorygraph-client-0.1.6.tar.gz |
