diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 10:05:18 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 10:05:18 +0000 |
commit | dd9961dad4056a814b897986395bc28bb7e45637 (patch) | |
tree | 1c297fea6c1db0afd82b16fba199781de8d9d14b | |
parent | 538f19752201d6419699a20b886236d043f80358 (diff) |
automatic import of python-jikanpy
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-jikanpy.spec | 1512 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 1514 insertions, 0 deletions
@@ -0,0 +1 @@ +/jikanpy-4.3.2.tar.gz diff --git a/python-jikanpy.spec b/python-jikanpy.spec new file mode 100644 index 0000000..ae80af6 --- /dev/null +++ b/python-jikanpy.spec @@ -0,0 +1,1512 @@ +%global _empty_manifest_terminate_build 0 +Name: python-jikanpy +Version: 4.3.2 +Release: 1 +Summary: Python wrapper for the Jikan API +License: MIT +URL: https://github.com/abhinavk99/jikanpy +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/83/e8/209046fb69080845d4f891602e65b803b2516df5e15dd822ff62de105fc6/jikanpy-4.3.2.tar.gz +BuildArch: noarch + +Requires: python3-requests +Requires: python3-aiohttp +Requires: python3-simplejson + +%description +# JikanPy + +[](https://travis-ci.com/abhinavk99/jikanpy) +[](https://codecov.io/gh/abhinavk99/jikanpy/) +[](https://pypi.org/project/jikanpy/) +[](https://pypi.org/project/jikanpy/) +[](https://jikanpy.readthedocs.io/en/latest/) +[](https://github.com/ambv/black) +[](http://makeapullrequest.com) + +JikanPy is a Python wrapper for [Jikan](https://github.com/jikan-me/jikan), +providing bindings for all API functionality, and supports Python 3.6+. Because +it is intended to be pretty much identical, please consult [Jikan's +documentation](https://jikan.docs.apiary.io/#) for thornier details on how it is +meant to be used. Perhaps most importantly, JikanPy does not make any attempts +to rate limit itself, so use it as responsibly as you would use the API +primitively and remember that Jikan API has limitations, check out +[this section](https://jikan.docs.apiary.io/#introduction/information/rate-limiting) +of documentation in order to see to what extent the API is limited or throttled. + +You can use either Jikan or AioJikan depending on whether you want a synchronous +wrapper class or an asynchronous wrapper class respectively. More usage examples +are below. + +In addition to the typical response from the Jikan API, each response contains +two additional fields: + +- `jikan_url`: The URL that was requested; for example: `https://api.jikan.moe/v3/anime/1`. +- `headers`: The response headers from Jikan, detailed [here](https://jikan.docs.apiary.io/#introduction/information/caching). + +## Installation + +```shell +$ pip install jikanpy +``` + +## Usage Examples + +Below are some basic examples of how to use Jikan and AioJikan. Please read the +[documentation below](https://github.com/abhinavk99/jikanpy#documentation) to see all the methods and more examples. + +### Usage Examples with Jikan + +```python +from jikanpy import Jikan +jikan = Jikan() + +mushishi = jikan.anime(457) +mushishi_with_eps = jikan.anime(457, extension='episodes') + +search_result = jikan.search('anime', 'Mushishi', page=2) + +winter_2018_anime = jikan.season(year=2018, season='winter') + +archive = jikan.season_archive() +``` + +### Async Usage Examples with AioJikan + +```python +import asyncio +from jikanpy import AioJikan + +async def main(): + async with AioJikan() as aio_jikan: + mushishi = await aio_jikan.anime(457) + fma = await aio_jikan.manga(25) + ginko = await aio_jikan.character(425) + kana_hanazawa = await aio_jikan.person(185) + naruto = await aio_jikan.search(search_type='anime', query='naruto') + + # You can also construct AioJikan like below, but make sure to close the object + aio_jikan_2 = AioJikan() + mushishi = await aio_jikan.anime(457) + await aio_jikan_2.close() + +asyncio.run(main()) +``` + +## Documentation + +Check out the documentation [here](https://jikanpy.readthedocs.io). + +## Overriding default settings in Jikan and AioJikan with constructor arguments + +If you're running an instance of [jikan-rest](https://github.com/jikan-me/jikan-rest) +on your system, and want to use that instead of [api.jikan.moe](https://jikan.moe/), +you can pass that to Jikan: + +```python +from jikanpy import Jikan +jikan = Jikan(selected_base='http://localhost:8000/v3') +``` + +If you want to use your own Requests session, you can do that too. + +```python +import requests +from jikanpy import Jikan + +session = requests.Session() +# Set custom persistent headers that will be used with all HTTP requests with your session +session.headers.update({'x-test': 'true'}) + +jikan = Jikan(session=session) +``` + +You can use any or all of these constructor arguments when creating an instance +of Jikan. + +AioJikan also has `selected_base` and `session` (although AioJikan uses AioHTTP +session, not Requests). + +```python +import aiohttp +import asyncio + +from jikanpy import AioJikan + +async def main(): + # Construct AioJikan with own base URL and custom AioHTTP session with custom persistent headers + session = aiohttp.ClientSession(headers={'x-test': 'true'}) + aio_jikan = AioJikan(selected_base='http://localhost:8000/v3', session=session) + await session.close() + +asyncio.run(main()) +``` + +## Testing + +```shell +# In root of repository +$ pytest +``` +# Changelog for Jikanpy + +## [4.3.2] - 2021-04-15 + +### Fixed + +- Don't include the CHANGELOG.md as a `data_file`, just read it while building releases. Previously this could cause CHANGELOG.md to be installed into the users data dir (`/usr/` or `~/.local/` depending on how its installed). See [#90](https://github.com/abhinavk99/jikanpy/issues/90) + +## [4.3.1] - 2021-02-27 + +### Changed + +- Updated aiohttp to 3.7.4 + +## [4.3.0] - 2021-02-15 + +### Added + +- Calling season method with no arguments defaults to current season + +## [4.2.2] - 2020-07-24 + +### Fixed + +- Bug where downloading jikanpy from the distribution would fail because CHANGELOG.md wasn't included and setup.py uses it + +## [4.2.1] - 2020-06-11 + +### Fixed + +- Bug where simplejson wasn't being installed as a dependency + +## [4.2.0] - 2020-06-10 + +### Added + +- Revamped how APIException works so it displays more information whether or not the HTTP response is JSON + +### Changed + +- Some refactoring to fix typing and linting errors from mypy, flake8, and pylint +- Updated some unit tests and commented out ones that don't work because of Jikan 503 errors + +### Fixed + +- Bug where jikanpy would crash when the JSON response can't be decoded with the simplejson JSON parser +- Bug where jikanpy would crash when the JSON response is a list instead of a dict + +## [4.1.0] - 2020-05-23 + +### Fixed + +- Bug where selected_base wasn't being used +- Bug where trailing slash or whitespace in selected_base argument wouldn't work + +## [4.0.0] - 2020-05-20 + +### Added + +- Documentation at https://jikanpy.readthedocs.io +- AioJikan can be constructed using 'async with' technique +- Optional page argument to club method + +### Changed + +- AbstractJikan rewritten as utility methods +- Docstrings rewritten to follow Google style guide +- Updated all requirements to current versions + +### Removed + +- Removed checking arguments and throwing ClientException from invalid arguments +- Removed ClientException because it isn't being raised anymore +- Removed use_ssl argument so only HTTPS Jikan URL is available +- Removed loop argument for AioJikan +- Unnecessary type hints for variable instantiations + +### Fixed + +- Lazy construct aiohttp session in AioJikan to stop DeprecationWarning +- Issue where page couldn't be added to user method URL when argument not passed in + +## [3.4.2] - 2019-11-29 + +### Added + +- Added extension forum/episodes for anime endpoint + +## [3.4.1] - 2019-10-02 + +### Added + +- Added MIT license to Jikanpy + +## [3.4.0] - 2019-09-15 + +### Added + +- Added Jikanpy to PyPI + +## [3.3.0] - 2019-09-07 + +### Added + +- Ability to pass in own Requests session to Jikan in constructor + +### Fixed + +- Made type hints for session and loop in constructors more accurate + +## [3.2.0] - 2019-09-07 + +### Added + +- Jikan URL and response headers to Jikanpy response + +### Fixed + +- Error handling when type or period argument is None for meta method +- Bug in which letter argument for search method didn't allow the character . + +## [3.1.2] - 2019-07-23 + +### Added + +- This changelog + +## [3.1.1] - 2019-07-22 + +### Fixed + +- Bug when passing in genre_exclude as boolean + +## [3.1.0] - 2019-05-18 + +### Added + +- selected_base constructor arg to aio_jikan + +### Changed + +- search and user methods to adhere with REST 3.3 + +## [3.0.2] - 2019-05-07 + +### Fixed + +- Bug where search method didn't check genre parameter correctly + +## [3.0.1] - 2019-04-28 + +### Fixed + +- Bug where check_response didn't handle when there was no error in the response json + +## [3.0.0] - 2019-03-30 + +### Added + +- Type hints (only works in Python 3.6+) +- Options `other` and `unknown` for the parameter `day` in schedule method +- Errors thrown when `status` request is called with arguments in meta method +- `page` parameter to manga endpoint + +### Removed + +- No more support for Python versions before 3.6 + +### Fixed + +- Bug where parameters weren't being added to search url correctly +- Argument checks for user method +- meta not implemented test + +## [2.4.1] - 2019-03-12 + +### Added + +- Tests to reach 100% coverage + +### Changed + +- Abstract methods raise `NotImplementedError` + +## [2.4.0] - 2019-03-05 + +### Added + +- Option to provide base url to Jikanpy to use for endpoint + +### Changed + +- README examples for user method + +## [2.3.2] - 2019-01-19 + +### Added + +- Codecov integration +- Error if top method if subtype is provided without page +- async/await examples in examples.py + +## [2.3.1] - 2019-01-05 + +### Added + +- Tests and examples for person method + +## [2.3.0] - 2019-01-04 + +### Added + +- club and season later methods (for REST v3.2) +- reviews, recommendations, and user updates extensions (for REST v3.2) + +### Fixed + +- Bug where page wasn't added to url correctly for extension `episodes` + +## [2.2.0] - 2018-12-05 + +### Added + +- Travis integration +- Support for multiple query parameters in search method + +### Removed + +- No more support for Python versions before 3.5 + +## [2.1.3] - 2018-11-28 + +### Fixed + +- Subtypes checking for top endpoint + +## [2.1.2] - 2018-11-20 + +### Fixed + +- Bug when adding query parameter to url before converting it to a string in search method + +## [2.1.1] - 2018-11-18 + +### Fixed + +- Checking key and value in search method + +## [2.1.0] - 2018-10-18 + +### Added + +- animelist and mangalist support in user endpoint (REST v3.1) +- search archive method (REST v3.1) + +## [2.0.0] - 2018-09-05 + +### Added + +- genre, producer, magazine, and user methods (REST v3) + +### Changed + +- Base endpoint url to `api.jikan.moe/v3` + +## [1.0.1] - 2018-09-03 + +### Fixed + +- Bug where page was added to url before converting it to a string + +## [1.0.0] - 2018-06-17 + +### Added + +- semver for versioning +- setup.py + +## 2018-06-07 + +### Added + +- AioJikan async wrapper for Jikan + +## 2018-05-25 + +### Added + +- season, schedule, top, and meta methods (REST v2.2) + +### Changed + +- Generalized error checking + +## 2018-05-18 + +### Added + +- page support to anime, manga, character, and person methods (REST v2.2) +- query parameter to search method (REST v2.2) + +## 2018-04-12 + +### Added + +- search method (REST v2.1) +- examples.py for example usage + +### Changed + +- Base endpoint url to `api.jikan.moe` +- Extensions for anime, manga, character, and person methods (REST v2.1) +- Limit warning in docstring to the new limit, 5000 +- Link to Jikan docs in README + +### Deprecated + +- user list method + +## 2017-10-20 + +### Changed + +- DeprecationWarning to DeprecatedEndpoint + +### Fixed + +- ID typos in README usage + +## 2017-10-19 + +### Added + +- character, person, and user list methods +- Tests for anime and manga methods +- DeprecationWarning exception +- Usage info in README + +## 2017-10-18 + +### Added + +- Initial version with anime and manga methods and exceptions + + + + +%package -n python3-jikanpy +Summary: Python wrapper for the Jikan API +Provides: python-jikanpy +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-jikanpy +# JikanPy + +[](https://travis-ci.com/abhinavk99/jikanpy) +[](https://codecov.io/gh/abhinavk99/jikanpy/) +[](https://pypi.org/project/jikanpy/) +[](https://pypi.org/project/jikanpy/) +[](https://jikanpy.readthedocs.io/en/latest/) +[](https://github.com/ambv/black) +[](http://makeapullrequest.com) + +JikanPy is a Python wrapper for [Jikan](https://github.com/jikan-me/jikan), +providing bindings for all API functionality, and supports Python 3.6+. Because +it is intended to be pretty much identical, please consult [Jikan's +documentation](https://jikan.docs.apiary.io/#) for thornier details on how it is +meant to be used. Perhaps most importantly, JikanPy does not make any attempts +to rate limit itself, so use it as responsibly as you would use the API +primitively and remember that Jikan API has limitations, check out +[this section](https://jikan.docs.apiary.io/#introduction/information/rate-limiting) +of documentation in order to see to what extent the API is limited or throttled. + +You can use either Jikan or AioJikan depending on whether you want a synchronous +wrapper class or an asynchronous wrapper class respectively. More usage examples +are below. + +In addition to the typical response from the Jikan API, each response contains +two additional fields: + +- `jikan_url`: The URL that was requested; for example: `https://api.jikan.moe/v3/anime/1`. +- `headers`: The response headers from Jikan, detailed [here](https://jikan.docs.apiary.io/#introduction/information/caching). + +## Installation + +```shell +$ pip install jikanpy +``` + +## Usage Examples + +Below are some basic examples of how to use Jikan and AioJikan. Please read the +[documentation below](https://github.com/abhinavk99/jikanpy#documentation) to see all the methods and more examples. + +### Usage Examples with Jikan + +```python +from jikanpy import Jikan +jikan = Jikan() + +mushishi = jikan.anime(457) +mushishi_with_eps = jikan.anime(457, extension='episodes') + +search_result = jikan.search('anime', 'Mushishi', page=2) + +winter_2018_anime = jikan.season(year=2018, season='winter') + +archive = jikan.season_archive() +``` + +### Async Usage Examples with AioJikan + +```python +import asyncio +from jikanpy import AioJikan + +async def main(): + async with AioJikan() as aio_jikan: + mushishi = await aio_jikan.anime(457) + fma = await aio_jikan.manga(25) + ginko = await aio_jikan.character(425) + kana_hanazawa = await aio_jikan.person(185) + naruto = await aio_jikan.search(search_type='anime', query='naruto') + + # You can also construct AioJikan like below, but make sure to close the object + aio_jikan_2 = AioJikan() + mushishi = await aio_jikan.anime(457) + await aio_jikan_2.close() + +asyncio.run(main()) +``` + +## Documentation + +Check out the documentation [here](https://jikanpy.readthedocs.io). + +## Overriding default settings in Jikan and AioJikan with constructor arguments + +If you're running an instance of [jikan-rest](https://github.com/jikan-me/jikan-rest) +on your system, and want to use that instead of [api.jikan.moe](https://jikan.moe/), +you can pass that to Jikan: + +```python +from jikanpy import Jikan +jikan = Jikan(selected_base='http://localhost:8000/v3') +``` + +If you want to use your own Requests session, you can do that too. + +```python +import requests +from jikanpy import Jikan + +session = requests.Session() +# Set custom persistent headers that will be used with all HTTP requests with your session +session.headers.update({'x-test': 'true'}) + +jikan = Jikan(session=session) +``` + +You can use any or all of these constructor arguments when creating an instance +of Jikan. + +AioJikan also has `selected_base` and `session` (although AioJikan uses AioHTTP +session, not Requests). + +```python +import aiohttp +import asyncio + +from jikanpy import AioJikan + +async def main(): + # Construct AioJikan with own base URL and custom AioHTTP session with custom persistent headers + session = aiohttp.ClientSession(headers={'x-test': 'true'}) + aio_jikan = AioJikan(selected_base='http://localhost:8000/v3', session=session) + await session.close() + +asyncio.run(main()) +``` + +## Testing + +```shell +# In root of repository +$ pytest +``` +# Changelog for Jikanpy + +## [4.3.2] - 2021-04-15 + +### Fixed + +- Don't include the CHANGELOG.md as a `data_file`, just read it while building releases. Previously this could cause CHANGELOG.md to be installed into the users data dir (`/usr/` or `~/.local/` depending on how its installed). See [#90](https://github.com/abhinavk99/jikanpy/issues/90) + +## [4.3.1] - 2021-02-27 + +### Changed + +- Updated aiohttp to 3.7.4 + +## [4.3.0] - 2021-02-15 + +### Added + +- Calling season method with no arguments defaults to current season + +## [4.2.2] - 2020-07-24 + +### Fixed + +- Bug where downloading jikanpy from the distribution would fail because CHANGELOG.md wasn't included and setup.py uses it + +## [4.2.1] - 2020-06-11 + +### Fixed + +- Bug where simplejson wasn't being installed as a dependency + +## [4.2.0] - 2020-06-10 + +### Added + +- Revamped how APIException works so it displays more information whether or not the HTTP response is JSON + +### Changed + +- Some refactoring to fix typing and linting errors from mypy, flake8, and pylint +- Updated some unit tests and commented out ones that don't work because of Jikan 503 errors + +### Fixed + +- Bug where jikanpy would crash when the JSON response can't be decoded with the simplejson JSON parser +- Bug where jikanpy would crash when the JSON response is a list instead of a dict + +## [4.1.0] - 2020-05-23 + +### Fixed + +- Bug where selected_base wasn't being used +- Bug where trailing slash or whitespace in selected_base argument wouldn't work + +## [4.0.0] - 2020-05-20 + +### Added + +- Documentation at https://jikanpy.readthedocs.io +- AioJikan can be constructed using 'async with' technique +- Optional page argument to club method + +### Changed + +- AbstractJikan rewritten as utility methods +- Docstrings rewritten to follow Google style guide +- Updated all requirements to current versions + +### Removed + +- Removed checking arguments and throwing ClientException from invalid arguments +- Removed ClientException because it isn't being raised anymore +- Removed use_ssl argument so only HTTPS Jikan URL is available +- Removed loop argument for AioJikan +- Unnecessary type hints for variable instantiations + +### Fixed + +- Lazy construct aiohttp session in AioJikan to stop DeprecationWarning +- Issue where page couldn't be added to user method URL when argument not passed in + +## [3.4.2] - 2019-11-29 + +### Added + +- Added extension forum/episodes for anime endpoint + +## [3.4.1] - 2019-10-02 + +### Added + +- Added MIT license to Jikanpy + +## [3.4.0] - 2019-09-15 + +### Added + +- Added Jikanpy to PyPI + +## [3.3.0] - 2019-09-07 + +### Added + +- Ability to pass in own Requests session to Jikan in constructor + +### Fixed + +- Made type hints for session and loop in constructors more accurate + +## [3.2.0] - 2019-09-07 + +### Added + +- Jikan URL and response headers to Jikanpy response + +### Fixed + +- Error handling when type or period argument is None for meta method +- Bug in which letter argument for search method didn't allow the character . + +## [3.1.2] - 2019-07-23 + +### Added + +- This changelog + +## [3.1.1] - 2019-07-22 + +### Fixed + +- Bug when passing in genre_exclude as boolean + +## [3.1.0] - 2019-05-18 + +### Added + +- selected_base constructor arg to aio_jikan + +### Changed + +- search and user methods to adhere with REST 3.3 + +## [3.0.2] - 2019-05-07 + +### Fixed + +- Bug where search method didn't check genre parameter correctly + +## [3.0.1] - 2019-04-28 + +### Fixed + +- Bug where check_response didn't handle when there was no error in the response json + +## [3.0.0] - 2019-03-30 + +### Added + +- Type hints (only works in Python 3.6+) +- Options `other` and `unknown` for the parameter `day` in schedule method +- Errors thrown when `status` request is called with arguments in meta method +- `page` parameter to manga endpoint + +### Removed + +- No more support for Python versions before 3.6 + +### Fixed + +- Bug where parameters weren't being added to search url correctly +- Argument checks for user method +- meta not implemented test + +## [2.4.1] - 2019-03-12 + +### Added + +- Tests to reach 100% coverage + +### Changed + +- Abstract methods raise `NotImplementedError` + +## [2.4.0] - 2019-03-05 + +### Added + +- Option to provide base url to Jikanpy to use for endpoint + +### Changed + +- README examples for user method + +## [2.3.2] - 2019-01-19 + +### Added + +- Codecov integration +- Error if top method if subtype is provided without page +- async/await examples in examples.py + +## [2.3.1] - 2019-01-05 + +### Added + +- Tests and examples for person method + +## [2.3.0] - 2019-01-04 + +### Added + +- club and season later methods (for REST v3.2) +- reviews, recommendations, and user updates extensions (for REST v3.2) + +### Fixed + +- Bug where page wasn't added to url correctly for extension `episodes` + +## [2.2.0] - 2018-12-05 + +### Added + +- Travis integration +- Support for multiple query parameters in search method + +### Removed + +- No more support for Python versions before 3.5 + +## [2.1.3] - 2018-11-28 + +### Fixed + +- Subtypes checking for top endpoint + +## [2.1.2] - 2018-11-20 + +### Fixed + +- Bug when adding query parameter to url before converting it to a string in search method + +## [2.1.1] - 2018-11-18 + +### Fixed + +- Checking key and value in search method + +## [2.1.0] - 2018-10-18 + +### Added + +- animelist and mangalist support in user endpoint (REST v3.1) +- search archive method (REST v3.1) + +## [2.0.0] - 2018-09-05 + +### Added + +- genre, producer, magazine, and user methods (REST v3) + +### Changed + +- Base endpoint url to `api.jikan.moe/v3` + +## [1.0.1] - 2018-09-03 + +### Fixed + +- Bug where page was added to url before converting it to a string + +## [1.0.0] - 2018-06-17 + +### Added + +- semver for versioning +- setup.py + +## 2018-06-07 + +### Added + +- AioJikan async wrapper for Jikan + +## 2018-05-25 + +### Added + +- season, schedule, top, and meta methods (REST v2.2) + +### Changed + +- Generalized error checking + +## 2018-05-18 + +### Added + +- page support to anime, manga, character, and person methods (REST v2.2) +- query parameter to search method (REST v2.2) + +## 2018-04-12 + +### Added + +- search method (REST v2.1) +- examples.py for example usage + +### Changed + +- Base endpoint url to `api.jikan.moe` +- Extensions for anime, manga, character, and person methods (REST v2.1) +- Limit warning in docstring to the new limit, 5000 +- Link to Jikan docs in README + +### Deprecated + +- user list method + +## 2017-10-20 + +### Changed + +- DeprecationWarning to DeprecatedEndpoint + +### Fixed + +- ID typos in README usage + +## 2017-10-19 + +### Added + +- character, person, and user list methods +- Tests for anime and manga methods +- DeprecationWarning exception +- Usage info in README + +## 2017-10-18 + +### Added + +- Initial version with anime and manga methods and exceptions + + + + +%package help +Summary: Development documents and examples for jikanpy +Provides: python3-jikanpy-doc +%description help +# JikanPy + +[](https://travis-ci.com/abhinavk99/jikanpy) +[](https://codecov.io/gh/abhinavk99/jikanpy/) +[](https://pypi.org/project/jikanpy/) +[](https://pypi.org/project/jikanpy/) +[](https://jikanpy.readthedocs.io/en/latest/) +[](https://github.com/ambv/black) +[](http://makeapullrequest.com) + +JikanPy is a Python wrapper for [Jikan](https://github.com/jikan-me/jikan), +providing bindings for all API functionality, and supports Python 3.6+. Because +it is intended to be pretty much identical, please consult [Jikan's +documentation](https://jikan.docs.apiary.io/#) for thornier details on how it is +meant to be used. Perhaps most importantly, JikanPy does not make any attempts +to rate limit itself, so use it as responsibly as you would use the API +primitively and remember that Jikan API has limitations, check out +[this section](https://jikan.docs.apiary.io/#introduction/information/rate-limiting) +of documentation in order to see to what extent the API is limited or throttled. + +You can use either Jikan or AioJikan depending on whether you want a synchronous +wrapper class or an asynchronous wrapper class respectively. More usage examples +are below. + +In addition to the typical response from the Jikan API, each response contains +two additional fields: + +- `jikan_url`: The URL that was requested; for example: `https://api.jikan.moe/v3/anime/1`. +- `headers`: The response headers from Jikan, detailed [here](https://jikan.docs.apiary.io/#introduction/information/caching). + +## Installation + +```shell +$ pip install jikanpy +``` + +## Usage Examples + +Below are some basic examples of how to use Jikan and AioJikan. Please read the +[documentation below](https://github.com/abhinavk99/jikanpy#documentation) to see all the methods and more examples. + +### Usage Examples with Jikan + +```python +from jikanpy import Jikan +jikan = Jikan() + +mushishi = jikan.anime(457) +mushishi_with_eps = jikan.anime(457, extension='episodes') + +search_result = jikan.search('anime', 'Mushishi', page=2) + +winter_2018_anime = jikan.season(year=2018, season='winter') + +archive = jikan.season_archive() +``` + +### Async Usage Examples with AioJikan + +```python +import asyncio +from jikanpy import AioJikan + +async def main(): + async with AioJikan() as aio_jikan: + mushishi = await aio_jikan.anime(457) + fma = await aio_jikan.manga(25) + ginko = await aio_jikan.character(425) + kana_hanazawa = await aio_jikan.person(185) + naruto = await aio_jikan.search(search_type='anime', query='naruto') + + # You can also construct AioJikan like below, but make sure to close the object + aio_jikan_2 = AioJikan() + mushishi = await aio_jikan.anime(457) + await aio_jikan_2.close() + +asyncio.run(main()) +``` + +## Documentation + +Check out the documentation [here](https://jikanpy.readthedocs.io). + +## Overriding default settings in Jikan and AioJikan with constructor arguments + +If you're running an instance of [jikan-rest](https://github.com/jikan-me/jikan-rest) +on your system, and want to use that instead of [api.jikan.moe](https://jikan.moe/), +you can pass that to Jikan: + +```python +from jikanpy import Jikan +jikan = Jikan(selected_base='http://localhost:8000/v3') +``` + +If you want to use your own Requests session, you can do that too. + +```python +import requests +from jikanpy import Jikan + +session = requests.Session() +# Set custom persistent headers that will be used with all HTTP requests with your session +session.headers.update({'x-test': 'true'}) + +jikan = Jikan(session=session) +``` + +You can use any or all of these constructor arguments when creating an instance +of Jikan. + +AioJikan also has `selected_base` and `session` (although AioJikan uses AioHTTP +session, not Requests). + +```python +import aiohttp +import asyncio + +from jikanpy import AioJikan + +async def main(): + # Construct AioJikan with own base URL and custom AioHTTP session with custom persistent headers + session = aiohttp.ClientSession(headers={'x-test': 'true'}) + aio_jikan = AioJikan(selected_base='http://localhost:8000/v3', session=session) + await session.close() + +asyncio.run(main()) +``` + +## Testing + +```shell +# In root of repository +$ pytest +``` +# Changelog for Jikanpy + +## [4.3.2] - 2021-04-15 + +### Fixed + +- Don't include the CHANGELOG.md as a `data_file`, just read it while building releases. Previously this could cause CHANGELOG.md to be installed into the users data dir (`/usr/` or `~/.local/` depending on how its installed). See [#90](https://github.com/abhinavk99/jikanpy/issues/90) + +## [4.3.1] - 2021-02-27 + +### Changed + +- Updated aiohttp to 3.7.4 + +## [4.3.0] - 2021-02-15 + +### Added + +- Calling season method with no arguments defaults to current season + +## [4.2.2] - 2020-07-24 + +### Fixed + +- Bug where downloading jikanpy from the distribution would fail because CHANGELOG.md wasn't included and setup.py uses it + +## [4.2.1] - 2020-06-11 + +### Fixed + +- Bug where simplejson wasn't being installed as a dependency + +## [4.2.0] - 2020-06-10 + +### Added + +- Revamped how APIException works so it displays more information whether or not the HTTP response is JSON + +### Changed + +- Some refactoring to fix typing and linting errors from mypy, flake8, and pylint +- Updated some unit tests and commented out ones that don't work because of Jikan 503 errors + +### Fixed + +- Bug where jikanpy would crash when the JSON response can't be decoded with the simplejson JSON parser +- Bug where jikanpy would crash when the JSON response is a list instead of a dict + +## [4.1.0] - 2020-05-23 + +### Fixed + +- Bug where selected_base wasn't being used +- Bug where trailing slash or whitespace in selected_base argument wouldn't work + +## [4.0.0] - 2020-05-20 + +### Added + +- Documentation at https://jikanpy.readthedocs.io +- AioJikan can be constructed using 'async with' technique +- Optional page argument to club method + +### Changed + +- AbstractJikan rewritten as utility methods +- Docstrings rewritten to follow Google style guide +- Updated all requirements to current versions + +### Removed + +- Removed checking arguments and throwing ClientException from invalid arguments +- Removed ClientException because it isn't being raised anymore +- Removed use_ssl argument so only HTTPS Jikan URL is available +- Removed loop argument for AioJikan +- Unnecessary type hints for variable instantiations + +### Fixed + +- Lazy construct aiohttp session in AioJikan to stop DeprecationWarning +- Issue where page couldn't be added to user method URL when argument not passed in + +## [3.4.2] - 2019-11-29 + +### Added + +- Added extension forum/episodes for anime endpoint + +## [3.4.1] - 2019-10-02 + +### Added + +- Added MIT license to Jikanpy + +## [3.4.0] - 2019-09-15 + +### Added + +- Added Jikanpy to PyPI + +## [3.3.0] - 2019-09-07 + +### Added + +- Ability to pass in own Requests session to Jikan in constructor + +### Fixed + +- Made type hints for session and loop in constructors more accurate + +## [3.2.0] - 2019-09-07 + +### Added + +- Jikan URL and response headers to Jikanpy response + +### Fixed + +- Error handling when type or period argument is None for meta method +- Bug in which letter argument for search method didn't allow the character . + +## [3.1.2] - 2019-07-23 + +### Added + +- This changelog + +## [3.1.1] - 2019-07-22 + +### Fixed + +- Bug when passing in genre_exclude as boolean + +## [3.1.0] - 2019-05-18 + +### Added + +- selected_base constructor arg to aio_jikan + +### Changed + +- search and user methods to adhere with REST 3.3 + +## [3.0.2] - 2019-05-07 + +### Fixed + +- Bug where search method didn't check genre parameter correctly + +## [3.0.1] - 2019-04-28 + +### Fixed + +- Bug where check_response didn't handle when there was no error in the response json + +## [3.0.0] - 2019-03-30 + +### Added + +- Type hints (only works in Python 3.6+) +- Options `other` and `unknown` for the parameter `day` in schedule method +- Errors thrown when `status` request is called with arguments in meta method +- `page` parameter to manga endpoint + +### Removed + +- No more support for Python versions before 3.6 + +### Fixed + +- Bug where parameters weren't being added to search url correctly +- Argument checks for user method +- meta not implemented test + +## [2.4.1] - 2019-03-12 + +### Added + +- Tests to reach 100% coverage + +### Changed + +- Abstract methods raise `NotImplementedError` + +## [2.4.0] - 2019-03-05 + +### Added + +- Option to provide base url to Jikanpy to use for endpoint + +### Changed + +- README examples for user method + +## [2.3.2] - 2019-01-19 + +### Added + +- Codecov integration +- Error if top method if subtype is provided without page +- async/await examples in examples.py + +## [2.3.1] - 2019-01-05 + +### Added + +- Tests and examples for person method + +## [2.3.0] - 2019-01-04 + +### Added + +- club and season later methods (for REST v3.2) +- reviews, recommendations, and user updates extensions (for REST v3.2) + +### Fixed + +- Bug where page wasn't added to url correctly for extension `episodes` + +## [2.2.0] - 2018-12-05 + +### Added + +- Travis integration +- Support for multiple query parameters in search method + +### Removed + +- No more support for Python versions before 3.5 + +## [2.1.3] - 2018-11-28 + +### Fixed + +- Subtypes checking for top endpoint + +## [2.1.2] - 2018-11-20 + +### Fixed + +- Bug when adding query parameter to url before converting it to a string in search method + +## [2.1.1] - 2018-11-18 + +### Fixed + +- Checking key and value in search method + +## [2.1.0] - 2018-10-18 + +### Added + +- animelist and mangalist support in user endpoint (REST v3.1) +- search archive method (REST v3.1) + +## [2.0.0] - 2018-09-05 + +### Added + +- genre, producer, magazine, and user methods (REST v3) + +### Changed + +- Base endpoint url to `api.jikan.moe/v3` + +## [1.0.1] - 2018-09-03 + +### Fixed + +- Bug where page was added to url before converting it to a string + +## [1.0.0] - 2018-06-17 + +### Added + +- semver for versioning +- setup.py + +## 2018-06-07 + +### Added + +- AioJikan async wrapper for Jikan + +## 2018-05-25 + +### Added + +- season, schedule, top, and meta methods (REST v2.2) + +### Changed + +- Generalized error checking + +## 2018-05-18 + +### Added + +- page support to anime, manga, character, and person methods (REST v2.2) +- query parameter to search method (REST v2.2) + +## 2018-04-12 + +### Added + +- search method (REST v2.1) +- examples.py for example usage + +### Changed + +- Base endpoint url to `api.jikan.moe` +- Extensions for anime, manga, character, and person methods (REST v2.1) +- Limit warning in docstring to the new limit, 5000 +- Link to Jikan docs in README + +### Deprecated + +- user list method + +## 2017-10-20 + +### Changed + +- DeprecationWarning to DeprecatedEndpoint + +### Fixed + +- ID typos in README usage + +## 2017-10-19 + +### Added + +- character, person, and user list methods +- Tests for anime and manga methods +- DeprecationWarning exception +- Usage info in README + +## 2017-10-18 + +### Added + +- Initial version with anime and manga methods and exceptions + + + + +%prep +%autosetup -n jikanpy-4.3.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-jikanpy -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 4.3.2-1 +- Package Spec generated @@ -0,0 +1 @@ +b01f3974c970a5759ee99cecd1196840 jikanpy-4.3.2.tar.gz |