marvelpy


Namemarvelpy JSON
Version 0.2.1 PyPI version JSON
download
home_pageNone
SummaryA fully-typed Python client for the Marvel Comics API.
upload_time2025-09-05 00:34:46
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords marvel api comics client async typed
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Marvelpy

[![PyPI version](https://badge.fury.io/py/marvelpy.svg)](https://badge.fury.io/py/marvelpy)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://jlgranof.github.io/marvelpy/)

A fully-typed Python client for the Marvel Comics API.

## Features

- 🚀 **Async-first design** - Built with modern async/await patterns
- 🔒 **Fully typed** - Complete type hints for better IDE support
- 📚 **Comprehensive** - Full coverage of the Marvel Comics API
- 🛡️ **Enterprise-ready** - Production-grade error handling and retry logic
- 📖 **Well documented** - Extensive documentation and examples

## Quick Start

### Installation

```bash
pip install marvelpy
```

### Basic Usage

```python
import asyncio
from marvelpy import MarvelClient

async def main():
    async with MarvelClient("your_public_key", "your_private_key") as client:
        # Get characters
        characters = await client.get_characters(params={"limit": 5})
        print(f"Found {characters['data']['count']} characters")

        # Search for specific characters
        iron_man = await client.get_characters(params={"name": "iron man"})
        print(f"Iron Man: {iron_man['data']['results'][0]['name']}")

asyncio.run(main())
```

## What's Available

Currently, Marvelpy v0.2.1 includes:

- **MarvelClient** - Full-featured async client for Marvel API
- **Authentication** - Automatic Marvel API authentication
- **Character Access** - Search and retrieve character information
- **Error Handling** - Robust retry logic and error management
- **Type Safety** - Complete type hints throughout
- **Test Suite** - Comprehensive tests with 85% coverage
- **Documentation** - Full API documentation with examples

## Coming Soon

Future versions will include:

- **Comics** - Access comic book data and metadata
- **Events** - Marvel universe events and storylines
- **Series** - Comic series information
- **Stories** - Individual story details
- **Creators** - Creator and artist information
- **Advanced Search** - More sophisticated filtering options
- **Caching** - Built-in response caching
- **Rate Limiting** - Automatic rate limit management

## Current Usage Examples

```python
import asyncio
from marvelpy import MarvelClient

async def main():
    async with MarvelClient("your_public_key", "your_private_key") as client:
        # Get all characters (with pagination)
        characters = await client.get_characters(params={"limit": 10})

        # Search for specific characters
        heroes = await client.get_characters(params={"name": "iron man"})

        # Get character by ID
        character = await client.get("characters/1009368")

        # Health check
        status = await client.health_check()

asyncio.run(main())
```

## Requirements

- Python 3.8 or higher
- httpx>=0.23.0
- pydantic>=1.10.0
- typing-extensions>=4.9.0
- click>=8.1.0

## Development

### Setup

```bash
git clone https://github.com/jlgranof/marvelpy.git
cd marvelpy
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e ".[dev]"
```

### Testing

```bash
pytest
pytest --cov=marvelpy --cov-report=html
```

### Documentation

```bash
mkdocs serve  # Serve docs locally
mkdocs build  # Build docs
```

## Contributing

We welcome contributions! Please see our [Contributing Guide](https://jlgranof.github.io/marvelpy/contributing/) for details.

## Documentation

- 📖 [Full Documentation](https://jlgranof.github.io/marvelpy/)
- 🚀 [Quick Start Guide](https://jlgranof.github.io/marvelpy/quickstart/)
- 📚 [API Reference](https://jlgranof.github.io/marvelpy/api/hello/)
- 🔧 [Installation Guide](https://jlgranof.github.io/marvelpy/installation/)

## License

This project is licensed under the MIT License.

## Links

- **PyPI**: https://pypi.org/project/marvelpy/
- **GitHub**: https://github.com/jlgranof/marvelpy
- **Documentation**: https://jlgranof.github.io/marvelpy/
- **Issues**: https://github.com/jlgranof/marvelpy/issues

---

**Note**: This package is actively developed. Version 0.2.1 includes a fully functional MarvelClient with character access, authentication, and comprehensive error handling. More endpoints and features are coming in future versions!

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "marvelpy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Jeff Granof <jlgranof@icloud.com>",
    "keywords": "marvel, api, comics, client, async, typed",
    "author": null,
    "author_email": "Jeff Granof <jlgranof@icloud.com>",
    "download_url": "https://files.pythonhosted.org/packages/e4/af/5501d18018f2df3455b150dc05c4fa3ea0e4c71f3826a54477f96c337346/marvelpy-0.2.1.tar.gz",
    "platform": null,
    "description": "# Marvelpy\n\n[![PyPI version](https://badge.fury.io/py/marvelpy.svg)](https://badge.fury.io/py/marvelpy)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://jlgranof.github.io/marvelpy/)\n\nA fully-typed Python client for the Marvel Comics API.\n\n## Features\n\n- \ud83d\ude80 **Async-first design** - Built with modern async/await patterns\n- \ud83d\udd12 **Fully typed** - Complete type hints for better IDE support\n- \ud83d\udcda **Comprehensive** - Full coverage of the Marvel Comics API\n- \ud83d\udee1\ufe0f **Enterprise-ready** - Production-grade error handling and retry logic\n- \ud83d\udcd6 **Well documented** - Extensive documentation and examples\n\n## Quick Start\n\n### Installation\n\n```bash\npip install marvelpy\n```\n\n### Basic Usage\n\n```python\nimport asyncio\nfrom marvelpy import MarvelClient\n\nasync def main():\n    async with MarvelClient(\"your_public_key\", \"your_private_key\") as client:\n        # Get characters\n        characters = await client.get_characters(params={\"limit\": 5})\n        print(f\"Found {characters['data']['count']} characters\")\n\n        # Search for specific characters\n        iron_man = await client.get_characters(params={\"name\": \"iron man\"})\n        print(f\"Iron Man: {iron_man['data']['results'][0]['name']}\")\n\nasyncio.run(main())\n```\n\n## What's Available\n\nCurrently, Marvelpy v0.2.1 includes:\n\n- **MarvelClient** - Full-featured async client for Marvel API\n- **Authentication** - Automatic Marvel API authentication\n- **Character Access** - Search and retrieve character information\n- **Error Handling** - Robust retry logic and error management\n- **Type Safety** - Complete type hints throughout\n- **Test Suite** - Comprehensive tests with 85% coverage\n- **Documentation** - Full API documentation with examples\n\n## Coming Soon\n\nFuture versions will include:\n\n- **Comics** - Access comic book data and metadata\n- **Events** - Marvel universe events and storylines\n- **Series** - Comic series information\n- **Stories** - Individual story details\n- **Creators** - Creator and artist information\n- **Advanced Search** - More sophisticated filtering options\n- **Caching** - Built-in response caching\n- **Rate Limiting** - Automatic rate limit management\n\n## Current Usage Examples\n\n```python\nimport asyncio\nfrom marvelpy import MarvelClient\n\nasync def main():\n    async with MarvelClient(\"your_public_key\", \"your_private_key\") as client:\n        # Get all characters (with pagination)\n        characters = await client.get_characters(params={\"limit\": 10})\n\n        # Search for specific characters\n        heroes = await client.get_characters(params={\"name\": \"iron man\"})\n\n        # Get character by ID\n        character = await client.get(\"characters/1009368\")\n\n        # Health check\n        status = await client.health_check()\n\nasyncio.run(main())\n```\n\n## Requirements\n\n- Python 3.8 or higher\n- httpx>=0.23.0\n- pydantic>=1.10.0\n- typing-extensions>=4.9.0\n- click>=8.1.0\n\n## Development\n\n### Setup\n\n```bash\ngit clone https://github.com/jlgranof/marvelpy.git\ncd marvelpy\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\npip install -e \".[dev]\"\n```\n\n### Testing\n\n```bash\npytest\npytest --cov=marvelpy --cov-report=html\n```\n\n### Documentation\n\n```bash\nmkdocs serve  # Serve docs locally\nmkdocs build  # Build docs\n```\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](https://jlgranof.github.io/marvelpy/contributing/) for details.\n\n## Documentation\n\n- \ud83d\udcd6 [Full Documentation](https://jlgranof.github.io/marvelpy/)\n- \ud83d\ude80 [Quick Start Guide](https://jlgranof.github.io/marvelpy/quickstart/)\n- \ud83d\udcda [API Reference](https://jlgranof.github.io/marvelpy/api/hello/)\n- \ud83d\udd27 [Installation Guide](https://jlgranof.github.io/marvelpy/installation/)\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Links\n\n- **PyPI**: https://pypi.org/project/marvelpy/\n- **GitHub**: https://github.com/jlgranof/marvelpy\n- **Documentation**: https://jlgranof.github.io/marvelpy/\n- **Issues**: https://github.com/jlgranof/marvelpy/issues\n\n---\n\n**Note**: This package is actively developed. Version 0.2.1 includes a fully functional MarvelClient with character access, authentication, and comprehensive error handling. More endpoints and features are coming in future versions!\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A fully-typed Python client for the Marvel Comics API.",
    "version": "0.2.1",
    "project_urls": {
        "Documentation": "https://jlgranof.github.io/marvelpy/",
        "Homepage": "https://github.com/jlgranof/marvelpy",
        "Issue Tracker": "https://github.com/jlgranof/marvelpy/issues"
    },
    "split_keywords": [
        "marvel",
        " api",
        " comics",
        " client",
        " async",
        " typed"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c0a83fad88f666ccdec9a5f5710ff3743d065556be4d04a6d82b410d9588c2ed",
                "md5": "ec3c349ea0654f08b2ebb8db036c49f6",
                "sha256": "23f7b80d320d250565b953f1021f1a608badda465959f12b6e77800ea698ef4d"
            },
            "downloads": -1,
            "filename": "marvelpy-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ec3c349ea0654f08b2ebb8db036c49f6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 7100,
            "upload_time": "2025-09-05T00:34:45",
            "upload_time_iso_8601": "2025-09-05T00:34:45.345221Z",
            "url": "https://files.pythonhosted.org/packages/c0/a8/3fad88f666ccdec9a5f5710ff3743d065556be4d04a6d82b410d9588c2ed/marvelpy-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e4af5501d18018f2df3455b150dc05c4fa3ea0e4c71f3826a54477f96c337346",
                "md5": "cc02833e4408b99cb6fd077093c1c923",
                "sha256": "f5ac58022976f41319585e4381de429d66a69823bc79d31898a992753781e481"
            },
            "downloads": -1,
            "filename": "marvelpy-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "cc02833e4408b99cb6fd077093c1c923",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 11433,
            "upload_time": "2025-09-05T00:34:46",
            "upload_time_iso_8601": "2025-09-05T00:34:46.343841Z",
            "url": "https://files.pythonhosted.org/packages/e4/af/5501d18018f2df3455b150dc05c4fa3ea0e4c71f3826a54477f96c337346/marvelpy-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-05 00:34:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jlgranof",
    "github_project": "marvelpy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "marvelpy"
}
        
Elapsed time: 2.70032s