Name | marvelpy JSON |
Version |
0.2.1
JSON |
| download |
home_page | None |
Summary | A fully-typed Python client for the Marvel Comics API. |
upload_time | 2025-09-05 00:34:46 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
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
[](https://badge.fury.io/py/marvelpy)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](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[](https://badge.fury.io/py/marvelpy)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](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"
}