elusion-kit


Nameelusion-kit JSON
Version 0.0.4 PyPI version JSON
download
home_pageNone
SummaryA Python framework for building high-quality, type-safe API SDKs with comprehensive error handling and retry logic
upload_time2025-08-03 16:59:29
maintainerNone
docs_urlNone
authorNone
requires_python>=3.13
licenseNone
keywords api-client api-sdk-framework async authentication developer-tools elusion elusion-kit error-handling framework http-client pagination pydantic python-framework retry-logic sdk type-safe
VCS
bugtrack_url
requirements httpx pydantic typing-extensions
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Elusion Kit

![Elusion Kit Logo](docs/assets/elusion-kit-logo.png)

A modern Python framework for building high-quality, type-safe API SDKs with comprehensive error handling and retry logic.

## What is Elusion Kit?

Elusion Kit is a framework that provides the infrastructure needed to build professional API SDKs. It handles the common patterns like HTTP clients, authentication, retry logic, error handling, and data validation, so you can focus on implementing your specific API's business logic.

## Key Features

- **Type Safe**: Full type hints with strict mypy configuration
- **Robust Error Handling**: Comprehensive exception hierarchy with detailed context
- **Automatic Retries**: Configurable retry strategies with exponential backoff
- **Flexible Authentication**: Extensible authentication patterns for any API
- **Modern Python**: Built for Python 3.13+ with latest features
- **Well Tested**: High test coverage with comprehensive test utilities
- **Developer Friendly**: Meaningful naming patterns and clear abstractions

## Quick Start

```python
from elusion._core import BaseServiceClient, HTTPClient
from elusion._core.authentication import APIKeyAuthenticator
from elusion._core.configuration import ClientConfiguration, ServiceSettings

class MySDKClient(BaseServiceClient):
    def __init__(self, api_key: str):
        config = ClientConfiguration(timeout=30.0, max_retries=3)
        settings = ServiceSettings(base_url="https://api.example.com")
        authenticator = APIKeyAuthenticator(api_key)

        super().__init__(
            config=config,
            service_settings=settings,
            authenticator=authenticator
        )

    def _get_service_name(self) -> str:
        return "MyAPI"

    def _get_base_url(self) -> str:
        return "https://api.example.com"

# Usage
client = MySDKClient("your-api-key")
```

## Installation

```bash
pip install elusion-kit
```

## Documentation

- [Getting Started](docs/getting-started.md) - Build your first SDK
- [Core Concepts](docs/core-concepts.md) - Understanding the framework
- [Configuration](docs/configuration.md) - Client and service configuration
- [Authentication](docs/authentication.md) - Authentication patterns
- [HTTP Client](docs/http-client.md) - Making requests with retry logic
- [Models](docs/models.md) - Data models and validation
- [Error Handling](docs/error-handling.md) - Exception handling patterns
- [Testing](docs/testing.md) - Testing your SDKs
- [Examples](docs/examples/) - Complete SDK examples
- [API Reference](docs/api-reference/) - Detailed API documentation

## Who Should Use Elusion Kit?

- **SDK Developers**: Building client libraries for REST APIs
- **API Providers**: Creating official SDKs for your services
- **Enterprise Teams**: Standardizing API client patterns across projects
- **Open Source Maintainers**: Building high-quality community SDKs

## Example SDKs Built with Elusion

- [elusion-jokes](https://github.com/elusionhub/elusion-kit-examples/elusion-jokes) - Sample APIs Jokes SDK

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Support

- [Documentation](docs/)
- [Issues](https://github.com/elusionhub/elusion-kit/issues)
- [Discussions](https://github.com/elusionhub/elusion-kit/discussions)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "elusion-kit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.13",
    "maintainer_email": "Elusion Hub <elusion.lab@gmail.com>",
    "keywords": "api-client, api-sdk-framework, async, authentication, developer-tools, elusion, elusion-kit, error-handling, framework, http-client, pagination, pydantic, python-framework, retry-logic, sdk, type-safe",
    "author": null,
    "author_email": "Elusion Hub <elusion.lab@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/f3/cb/f1e4578d3cd5962c6b4614ea6174a93a5a518f7a8ab5ec9eaf3630411139/elusion_kit-0.0.4.tar.gz",
    "platform": null,
    "description": "# Elusion Kit\n\n![Elusion Kit Logo](docs/assets/elusion-kit-logo.png)\n\nA modern Python framework for building high-quality, type-safe API SDKs with comprehensive error handling and retry logic.\n\n## What is Elusion Kit?\n\nElusion Kit is a framework that provides the infrastructure needed to build professional API SDKs. It handles the common patterns like HTTP clients, authentication, retry logic, error handling, and data validation, so you can focus on implementing your specific API's business logic.\n\n## Key Features\n\n- **Type Safe**: Full type hints with strict mypy configuration\n- **Robust Error Handling**: Comprehensive exception hierarchy with detailed context\n- **Automatic Retries**: Configurable retry strategies with exponential backoff\n- **Flexible Authentication**: Extensible authentication patterns for any API\n- **Modern Python**: Built for Python 3.13+ with latest features\n- **Well Tested**: High test coverage with comprehensive test utilities\n- **Developer Friendly**: Meaningful naming patterns and clear abstractions\n\n## Quick Start\n\n```python\nfrom elusion._core import BaseServiceClient, HTTPClient\nfrom elusion._core.authentication import APIKeyAuthenticator\nfrom elusion._core.configuration import ClientConfiguration, ServiceSettings\n\nclass MySDKClient(BaseServiceClient):\n    def __init__(self, api_key: str):\n        config = ClientConfiguration(timeout=30.0, max_retries=3)\n        settings = ServiceSettings(base_url=\"https://api.example.com\")\n        authenticator = APIKeyAuthenticator(api_key)\n\n        super().__init__(\n            config=config,\n            service_settings=settings,\n            authenticator=authenticator\n        )\n\n    def _get_service_name(self) -> str:\n        return \"MyAPI\"\n\n    def _get_base_url(self) -> str:\n        return \"https://api.example.com\"\n\n# Usage\nclient = MySDKClient(\"your-api-key\")\n```\n\n## Installation\n\n```bash\npip install elusion-kit\n```\n\n## Documentation\n\n- [Getting Started](docs/getting-started.md) - Build your first SDK\n- [Core Concepts](docs/core-concepts.md) - Understanding the framework\n- [Configuration](docs/configuration.md) - Client and service configuration\n- [Authentication](docs/authentication.md) - Authentication patterns\n- [HTTP Client](docs/http-client.md) - Making requests with retry logic\n- [Models](docs/models.md) - Data models and validation\n- [Error Handling](docs/error-handling.md) - Exception handling patterns\n- [Testing](docs/testing.md) - Testing your SDKs\n- [Examples](docs/examples/) - Complete SDK examples\n- [API Reference](docs/api-reference/) - Detailed API documentation\n\n## Who Should Use Elusion Kit?\n\n- **SDK Developers**: Building client libraries for REST APIs\n- **API Providers**: Creating official SDKs for your services\n- **Enterprise Teams**: Standardizing API client patterns across projects\n- **Open Source Maintainers**: Building high-quality community SDKs\n\n## Example SDKs Built with Elusion\n\n- [elusion-jokes](https://github.com/elusionhub/elusion-kit-examples/elusion-jokes) - Sample APIs Jokes SDK\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\n- [Documentation](docs/)\n- [Issues](https://github.com/elusionhub/elusion-kit/issues)\n- [Discussions](https://github.com/elusionhub/elusion-kit/discussions)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Python framework for building high-quality, type-safe API SDKs with comprehensive error handling and retry logic",
    "version": "0.0.4",
    "project_urls": {
        "Bug Reports": "https://github.com/elusionhub/elusion-kit/issues",
        "Changelog": "https://github.com/elusionhub/elusion-kit/blob/main/CHANGELOG.md",
        "Documentation": "https://elusion-kit.readthedocs.io",
        "Framework Documentation": "https://elusion-kit.readthedocs.io/en/latest/",
        "Homepage": "https://github.com/elusionhub/elusion-kit",
        "Issues": "https://github.com/elusionhub/elusion-kit/issues",
        "Repository": "https://github.com/elusionhub/elusion-kit.git",
        "Source Code": "https://github.com/elusionhub/elusion-kit"
    },
    "split_keywords": [
        "api-client",
        " api-sdk-framework",
        " async",
        " authentication",
        " developer-tools",
        " elusion",
        " elusion-kit",
        " error-handling",
        " framework",
        " http-client",
        " pagination",
        " pydantic",
        " python-framework",
        " retry-logic",
        " sdk",
        " type-safe"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5edbff0e33c522551c29a23c7384a98e1dc2be61e9392e89c4fd49ab4e3a0f9b",
                "md5": "3db1184364726c070e212d0a3b7bfe3c",
                "sha256": "e4fe8cff8fc279a888c4f05a9058a7b41c6b67fe1c561d70bd2e38f4a6fb638e"
            },
            "downloads": -1,
            "filename": "elusion_kit-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3db1184364726c070e212d0a3b7bfe3c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.13",
            "size": 17184,
            "upload_time": "2025-08-03T16:59:27",
            "upload_time_iso_8601": "2025-08-03T16:59:27.802236Z",
            "url": "https://files.pythonhosted.org/packages/5e/db/ff0e33c522551c29a23c7384a98e1dc2be61e9392e89c4fd49ab4e3a0f9b/elusion_kit-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f3cbf1e4578d3cd5962c6b4614ea6174a93a5a518f7a8ab5ec9eaf3630411139",
                "md5": "8dc9153038ce166b876fb2df7db6cb61",
                "sha256": "f45ead988e0dac013dd659c83b53c661355a3c2c55e90bd9db88005296f93107"
            },
            "downloads": -1,
            "filename": "elusion_kit-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "8dc9153038ce166b876fb2df7db6cb61",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.13",
            "size": 31206,
            "upload_time": "2025-08-03T16:59:29",
            "upload_time_iso_8601": "2025-08-03T16:59:29.457753Z",
            "url": "https://files.pythonhosted.org/packages/f3/cb/f1e4578d3cd5962c6b4614ea6174a93a5a518f7a8ab5ec9eaf3630411139/elusion_kit-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-03 16:59:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "elusionhub",
    "github_project": "elusion-kit",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "httpx",
            "specs": [
                [
                    ">=",
                    "0.28.1"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2.5.0"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    ">=",
                    "4.8.0"
                ]
            ]
        }
    ],
    "lcname": "elusion-kit"
}
        
Elapsed time: 1.19456s