Skip to main content

A well-documented and typed API wrapper for Hentai Haven.

Project description

Logo

HHaven

GitHub release (with filter) PyPI Code Climate coverage

A well-documented and typed API wrapper for Hentai Haven, providing efficient asynchronous requests, built-in cache support, and Pydantic Models for seamless autocompletion and linter support.

Key Features

  • Efficient Asynchronous Structure: Utilize a fully asynchronous structure that enhances request speed without affecting other processes in your code.
  • Built-in Cache Support: Benefit from built-in cache support using the aiocache library, reducing unnecessary API requests and improving overall performance.
  • Pydantic Model Output: Receive all data in the form of Pydantic Models, enabling comprehensive autocompletion and linter support.
  • Comprehensive Documentation: Explore extensive and user-friendly documentation, covering all aspects of this library.

Links

Documentation - https://hhaven.nekolab.app

API Reference - https://jokelbaf.github.io/hhaven-api-reference

Requirements

  • Python 3.8+
  • pydantic
  • aiohttp
  • aiocache

Installation

From PyPi:

pip install hhaven

From GitHub:

pip install git+https://github.com/JokelBaf/hhaven.git

Examples

Search for hentai by it's name:

from hhaven import Client
import asyncio

async def main():
    client = await Client().build()

    results = await client.search("Maid Kyouiku")
    hentai = await results[0].full()

    print(hentai)
        
if __name__ == "__main__":
    asyncio.run(main())

Get all episodes of the latest hentai:

from hhaven import Client
import asyncio

async def main():
    client = await Client().build()
    
    home = await client.home()
    hentai = await home.last[0].full()
    
    for episode in hentai.episodes:
        print(episode.name)
        
if __name__ == "__main__":
    asyncio.run(main())

Development

Uv is a preferred tool for managing dependencies and running the development environment in hhaven. To setup the project locally, use the following commands:

git clone https://github.com/JokelBaf/hhaven.git
cd hhaven
uv sync --group test

To run tests, use the following commands:

uv run pytest

To run documentation locally, use the following command:

uvx --with mkdocs-material[emoji] mkdocs serve

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hhaven-0.2.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hhaven-0.2.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file hhaven-0.2.0.tar.gz.

File metadata

  • Download URL: hhaven-0.2.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.7 Linux/6.11.0-1018-azure

File hashes

Hashes for hhaven-0.2.0.tar.gz
Algorithm Hash digest
SHA256 dd719a08fafa40dab6fd54c62988e81a4e52a44e1a65b0669f88c875c6b6259d
MD5 4170656b2bd8a4c1a8687da58bea586b
BLAKE2b-256 7d5b947c259cd7893990bc4190b9e279682384651f4b61815fa030da092ec555

See more details on using hashes here.

File details

Details for the file hhaven-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: hhaven-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.7 Linux/6.11.0-1018-azure

File hashes

Hashes for hhaven-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 659e12089a01afb0eeeb43d07b2d60ddd15adad11567f3726528e5e3cf51d9cc
MD5 481f300e15b992bbda1b9b2f361ecc63
BLAKE2b-256 1b663a183b04099948304643579f8922db011224dab5ebf6955ee2df964645e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page