animeapi-py


Nameanimeapi-py JSON
Version 3.4.0 PyPI version JSON
download
home_page
SummaryA Python wrapper for the AnimeAPI by nattadasu with type hints and additional async support.
upload_time2023-08-21 09:41:15
maintainer
docs_urlNone
author
requires_python>=3.7
licenseAGPL-3.0-or-later
keywords anime api wrapper async python animeapi nattadasu relations mappings type hints type annotations
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            AnimeAPI Python Wrapper
=======================

animeapi-python is a Python wrapper for the
`AnimeAPI <https://animeapi.my.id>`__ made by
`nattadasu <https://github.com/nattadasu>`__.

The wrapper is released with type hints and async support in mind for
ease of use and is compatible with Python 3.6 or higher.

Installation
------------

.. code:: sh

   pip install animeapi-py

Depending on your system, you may need to use ``pip3`` instead of
``pip``, or ``sudo pip`` instead of ``pip``.

Requirements
~~~~~~~~~~~~

-  Python 3.7 or higher
-  `aiohttp <https://pypi.org/project/aiohttp/>`__ (for async support)
-  `dacite <https://pypi.org/project/dacite/>`__
-  `requests <https://pypi.org/project/requests/>`__
-  `typing_extensions <https://pypi.org/project/typing-extensions/>`__ (for Python <= 3.8)

Usage
-----

.. code:: py

   import animeapi

   with animeapi.AnimeAPI() as api:
       # Get anime relation data for the anime with ID 1 on MyAnimeList
       mal = api.get_anime_relations(1, animeapi.Platform.MYANIMELIST)
       print(mal)

       # Get list of anime available on AniList
       anilist = api.get_list_anime_relations(animeapi.Platform.ANILIST)
       print(anilist[:2])  # Print first two results

       # Get dictionary of anime available on Kitsu
       kitsu = api.get_dict_anime_relations(animeapi.Platform.KITSU)
       print(kitsu['1'])  # Print data for Cowboy Bebop

We recommend using the ``with`` statement to create an instance of
``AnimeAPI`` as we designed the wrapper to be easy to switch between
sync and async, although you can also use ``AnimeAPI`` directly on
``sync`` methods only.

Asyncronous Usage
~~~~~~~~~~~~~~~~~

Similarly, for async, you just need to replace ``AnimeAPI`` with
``AsyncAnimeAPI`` and use ``await`` on the methods.

You must use the wrapper in ``with`` statement, or you will receive
``RuntimeError`` exception.

.. code:: py

   import animeapi

   async with animeapi.AsyncAnimeAPI() as api:
       # Get anime relation data for the anime with ID 1 on MyAnimeList
       mal = await api.get_anime_relations(1, animeapi.Platform.MYANIMELIST)
       print(mal)

       # Get list of anime available on AniList
       anilist = await api.get_list_anime_relations(animeapi.Platform.ANILIST)
       print(anilist[:2])  # Print first two results

       # Get dictionary of anime available on Kitsu
       kitsu = await api.get_dict_anime_relations(animeapi.Platform.KITSU)
       print(kitsu['1'])  # Print data for Cowboy Bebop

Documentation
-------------

You can find the documentation for the wrapper `here <https://animeapi-py.readthedocs.io/en/latest/>`__

Available Methods
~~~~~~~~~~~~~~~~~

``get_anime_relations(title_id: str | int, platform: str | Platform, media_type: str | TraktMediaType | TmdbMediaType | None = None, title_season: int | None) -> AnimeRelation``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This method equals to the ``/:platform/:title_id`` endpoint on the API.

.. code:: py

   # Get anime relation data for the anime with ID 1 on MyAnimeList
   mal = api.get_anime_relations(1, animeapi.Platform.MYANIMELIST)
   print(mal)

``get_dict_anime_relations(platform: str | Platform) -> dict[str, AnimeRelation]``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This method equals to the ``/:platform`` endpoint on the API. Use this
method if you want to get complete data for all anime available on a
platform and wanted to be able to access the data by the anime ID
faster.

.. code:: py

   # Get dictionary of anime available on Kitsu
   kitsu = api.get_dict_anime_relations(animeapi.Platform.KITSU)
   print(kitsu['1'])  # Print data for Cowboy Bebop

``get_list_anime_relations(platform: str | Platform) -> list[AnimeRelation]``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This method equals to the ``/:platform()`` endpoint on the API.

.. code:: py

   # Get list of anime available on AniList
   anilist = api.get_list_anime_relations(animeapi.Platform.ANILIST)
   print(anilist[:2])  # Print first two results

``get_list_index() -> list[AnimeRelation]``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This method equals to the ``/animeapi`` endpoint on the API.

.. code:: py

   # Get list of anime available on AnimeAPI
   animeapi = api.get_list_index()
   print(animeapi[:2])  # Print first two results

``get_status() -> ApiStatus``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This method equals to the ``/status`` endpoint on the API.

.. code:: py

   # Get status of AnimeAPI
   status = api.get_status()
   print(status)

``get_heartbeat() -> Heartbeat``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This method equals to the ``/heartbeat`` endpoint on the API.

.. code:: py

   # Get heartbeat of AnimeAPI
   heartbeat = api.get_heartbeat()
   print(heartbeat)

``get_updated_time() -> Updated``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This method equals to the ``/updated`` endpoint on the API.

.. code:: py

   # Get last updated time of AnimeAPI
   updated = api.get_updated_time(True)
   print(updated)
   print(updated.datetime())  # Convert to datetime class

License
-------

``animeapi-py`` is licensed under the `GNU Affero General Public License
v3.0 <LICENSE>`__.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "animeapi-py",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "anime,api,wrapper,async,python,animeapi,nattadasu,relations,mappings,type hints,type annotations",
    "author": "",
    "author_email": "nattadasu <hello@nattadasu.my.id>",
    "download_url": "https://files.pythonhosted.org/packages/d9/0f/805ff0d666cd2f65128ab4f4f3a54f5a77af96942bda2bb225c5458715d1/animeapi-py-3.4.0.tar.gz",
    "platform": null,
    "description": "AnimeAPI Python Wrapper\n=======================\n\nanimeapi-python is a Python wrapper for the\n`AnimeAPI <https://animeapi.my.id>`__ made by\n`nattadasu <https://github.com/nattadasu>`__.\n\nThe wrapper is released with type hints and async support in mind for\nease of use and is compatible with Python 3.6 or higher.\n\nInstallation\n------------\n\n.. code:: sh\n\n   pip install animeapi-py\n\nDepending on your system, you may need to use ``pip3`` instead of\n``pip``, or ``sudo pip`` instead of ``pip``.\n\nRequirements\n~~~~~~~~~~~~\n\n-  Python 3.7 or higher\n-  `aiohttp <https://pypi.org/project/aiohttp/>`__ (for async support)\n-  `dacite <https://pypi.org/project/dacite/>`__\n-  `requests <https://pypi.org/project/requests/>`__\n-  `typing_extensions <https://pypi.org/project/typing-extensions/>`__ (for Python <= 3.8)\n\nUsage\n-----\n\n.. code:: py\n\n   import animeapi\n\n   with animeapi.AnimeAPI() as api:\n       # Get anime relation data for the anime with ID 1 on MyAnimeList\n       mal = api.get_anime_relations(1, animeapi.Platform.MYANIMELIST)\n       print(mal)\n\n       # Get list of anime available on AniList\n       anilist = api.get_list_anime_relations(animeapi.Platform.ANILIST)\n       print(anilist[:2])  # Print first two results\n\n       # Get dictionary of anime available on Kitsu\n       kitsu = api.get_dict_anime_relations(animeapi.Platform.KITSU)\n       print(kitsu['1'])  # Print data for Cowboy Bebop\n\nWe recommend using the ``with`` statement to create an instance of\n``AnimeAPI`` as we designed the wrapper to be easy to switch between\nsync and async, although you can also use ``AnimeAPI`` directly on\n``sync`` methods only.\n\nAsyncronous Usage\n~~~~~~~~~~~~~~~~~\n\nSimilarly, for async, you just need to replace ``AnimeAPI`` with\n``AsyncAnimeAPI`` and use ``await`` on the methods.\n\nYou must use the wrapper in ``with`` statement, or you will receive\n``RuntimeError`` exception.\n\n.. code:: py\n\n   import animeapi\n\n   async with animeapi.AsyncAnimeAPI() as api:\n       # Get anime relation data for the anime with ID 1 on MyAnimeList\n       mal = await api.get_anime_relations(1, animeapi.Platform.MYANIMELIST)\n       print(mal)\n\n       # Get list of anime available on AniList\n       anilist = await api.get_list_anime_relations(animeapi.Platform.ANILIST)\n       print(anilist[:2])  # Print first two results\n\n       # Get dictionary of anime available on Kitsu\n       kitsu = await api.get_dict_anime_relations(animeapi.Platform.KITSU)\n       print(kitsu['1'])  # Print data for Cowboy Bebop\n\nDocumentation\n-------------\n\nYou can find the documentation for the wrapper `here <https://animeapi-py.readthedocs.io/en/latest/>`__\n\nAvailable Methods\n~~~~~~~~~~~~~~~~~\n\n``get_anime_relations(title_id: str | int, platform: str | Platform, media_type: str | TraktMediaType | TmdbMediaType | None = None, title_season: int | None) -> AnimeRelation``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThis method equals to the ``/:platform/:title_id`` endpoint on the API.\n\n.. code:: py\n\n   # Get anime relation data for the anime with ID 1 on MyAnimeList\n   mal = api.get_anime_relations(1, animeapi.Platform.MYANIMELIST)\n   print(mal)\n\n``get_dict_anime_relations(platform: str | Platform) -> dict[str, AnimeRelation]``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThis method equals to the ``/:platform`` endpoint on the API. Use this\nmethod if you want to get complete data for all anime available on a\nplatform and wanted to be able to access the data by the anime ID\nfaster.\n\n.. code:: py\n\n   # Get dictionary of anime available on Kitsu\n   kitsu = api.get_dict_anime_relations(animeapi.Platform.KITSU)\n   print(kitsu['1'])  # Print data for Cowboy Bebop\n\n``get_list_anime_relations(platform: str | Platform) -> list[AnimeRelation]``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThis method equals to the ``/:platform()`` endpoint on the API.\n\n.. code:: py\n\n   # Get list of anime available on AniList\n   anilist = api.get_list_anime_relations(animeapi.Platform.ANILIST)\n   print(anilist[:2])  # Print first two results\n\n``get_list_index() -> list[AnimeRelation]``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThis method equals to the ``/animeapi`` endpoint on the API.\n\n.. code:: py\n\n   # Get list of anime available on AnimeAPI\n   animeapi = api.get_list_index()\n   print(animeapi[:2])  # Print first two results\n\n``get_status() -> ApiStatus``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThis method equals to the ``/status`` endpoint on the API.\n\n.. code:: py\n\n   # Get status of AnimeAPI\n   status = api.get_status()\n   print(status)\n\n``get_heartbeat() -> Heartbeat``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThis method equals to the ``/heartbeat`` endpoint on the API.\n\n.. code:: py\n\n   # Get heartbeat of AnimeAPI\n   heartbeat = api.get_heartbeat()\n   print(heartbeat)\n\n``get_updated_time() -> Updated``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThis method equals to the ``/updated`` endpoint on the API.\n\n.. code:: py\n\n   # Get last updated time of AnimeAPI\n   updated = api.get_updated_time(True)\n   print(updated)\n   print(updated.datetime())  # Convert to datetime class\n\nLicense\n-------\n\n``animeapi-py`` is licensed under the `GNU Affero General Public License\nv3.0 <LICENSE>`__.\n",
    "bugtrack_url": null,
    "license": "AGPL-3.0-or-later",
    "summary": "A Python wrapper for the AnimeAPI by nattadasu with type hints and additional async support.",
    "version": "3.4.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/nattadasu/animeapi-py/issues",
        "Homepage": "https://animeapi.my.id",
        "Source": "https://github.com/nattadasu/animeapi-py"
    },
    "split_keywords": [
        "anime",
        "api",
        "wrapper",
        "async",
        "python",
        "animeapi",
        "nattadasu",
        "relations",
        "mappings",
        "type hints",
        "type annotations"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "411a8fc5f6620d1875155422ca0a4c8baa5e24411aee4a15f750911f2bcc3c58",
                "md5": "40ea5b17571550fb7065157e22c35c1c",
                "sha256": "06288fb8e18550b150acb3ad74e1c6d8f0cff40e070c05b69a59e3c4e25e1104"
            },
            "downloads": -1,
            "filename": "animeapi_py-3.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "40ea5b17571550fb7065157e22c35c1c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 23710,
            "upload_time": "2023-08-21T09:41:14",
            "upload_time_iso_8601": "2023-08-21T09:41:14.232512Z",
            "url": "https://files.pythonhosted.org/packages/41/1a/8fc5f6620d1875155422ca0a4c8baa5e24411aee4a15f750911f2bcc3c58/animeapi_py-3.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d90f805ff0d666cd2f65128ab4f4f3a54f5a77af96942bda2bb225c5458715d1",
                "md5": "d8e5d2965ec5f4ddec724e830e7b1f2a",
                "sha256": "fc1fdb9eca987d94787592f8a53bcdacd9e11716c0647179a1a3b660d450d490"
            },
            "downloads": -1,
            "filename": "animeapi-py-3.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d8e5d2965ec5f4ddec724e830e7b1f2a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 22450,
            "upload_time": "2023-08-21T09:41:15",
            "upload_time_iso_8601": "2023-08-21T09:41:15.773875Z",
            "url": "https://files.pythonhosted.org/packages/d9/0f/805ff0d666cd2f65128ab4f4f3a54f5a77af96942bda2bb225c5458715d1/animeapi-py-3.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-21 09:41:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nattadasu",
    "github_project": "animeapi-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "animeapi-py"
}
        
Elapsed time: 0.10251s