catalogus


Namecatalogus JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryClasses to provide name-to-object registry-like support
upload_time2025-09-02 21:54:51
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseGPL-2.0-or-later
keywords registry plugin extensibility
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Catalogus

A Python library providing classes for name-to-object registry-like support.

## Overview

Catalogus provides a simple and extensible registry system that allows you to:
- Register objects by name
- Retrieve objects by name
- Support lazy loading of objects
- Maintain type safety with generic support

This library was extracted from the Breezy version control system to provide a reusable registry implementation.

## Installation

```bash
pip install catalogus
```

## Quick Start

```python
from catalogus import Registry

# Create a registry
my_registry = Registry()

# Register objects directly
my_registry.register('item1', some_object)

# Register with lazy loading
my_registry.register_lazy('item2', 'my.module', 'MyClass')

# Retrieve objects
obj = my_registry.get('item1')
```

## Features

- **Type-safe**: Full generic type support with TypeVar
- **Lazy loading**: Objects can be loaded on-demand from modules
- **Flexible registration**: Support for direct objects and lazy imports
- **Iterator support**: Iterate over registered items
- **Python 3.9+**: Modern Python support

## Development

Install development dependencies:

```bash
pip install -e .[dev]
```

Run tests:

```bash
pytest
```

Format code:

```bash
ruff format
```

Check code style:

```bash
ruff check
mypy catalogus
```

## License

This project is licensed under the GNU General Public License v2 or later (GPLv2+).

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "catalogus",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "Breezy Developers <breezy-core@googlegroups.com>",
    "keywords": "registry, plugin, extensibility",
    "author": null,
    "author_email": "Breezy Developers <breezy-core@googlegroups.com>",
    "download_url": "https://files.pythonhosted.org/packages/a8/3e/8c9e87e4fc3c6c987a7f663730994fca8bfd8b61b821e401507384ee41f0/catalogus-0.1.0.tar.gz",
    "platform": null,
    "description": "# Catalogus\n\nA Python library providing classes for name-to-object registry-like support.\n\n## Overview\n\nCatalogus provides a simple and extensible registry system that allows you to:\n- Register objects by name\n- Retrieve objects by name\n- Support lazy loading of objects\n- Maintain type safety with generic support\n\nThis library was extracted from the Breezy version control system to provide a reusable registry implementation.\n\n## Installation\n\n```bash\npip install catalogus\n```\n\n## Quick Start\n\n```python\nfrom catalogus import Registry\n\n# Create a registry\nmy_registry = Registry()\n\n# Register objects directly\nmy_registry.register('item1', some_object)\n\n# Register with lazy loading\nmy_registry.register_lazy('item2', 'my.module', 'MyClass')\n\n# Retrieve objects\nobj = my_registry.get('item1')\n```\n\n## Features\n\n- **Type-safe**: Full generic type support with TypeVar\n- **Lazy loading**: Objects can be loaded on-demand from modules\n- **Flexible registration**: Support for direct objects and lazy imports\n- **Iterator support**: Iterate over registered items\n- **Python 3.9+**: Modern Python support\n\n## Development\n\nInstall development dependencies:\n\n```bash\npip install -e .[dev]\n```\n\nRun tests:\n\n```bash\npytest\n```\n\nFormat code:\n\n```bash\nruff format\n```\n\nCheck code style:\n\n```bash\nruff check\nmypy catalogus\n```\n\n## License\n\nThis project is licensed under the GNU General Public License v2 or later (GPLv2+).\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n",
    "bugtrack_url": null,
    "license": "GPL-2.0-or-later",
    "summary": "Classes to provide name-to-object registry-like support",
    "version": "0.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/breezy-team/catalogus/issues",
        "Homepage": "https://github.com/breezy-team/catalogus",
        "Source Code": "https://github.com/breezy-team/catalogus"
    },
    "split_keywords": [
        "registry",
        " plugin",
        " extensibility"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a83e8c9e87e4fc3c6c987a7f663730994fca8bfd8b61b821e401507384ee41f0",
                "md5": "2493380bc899751e80f015401dc6f91a",
                "sha256": "bea432f5611e29b5e1988ac9242cfb679c2ca0cb5f8591915eabc39d49c629c3"
            },
            "downloads": -1,
            "filename": "catalogus-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "2493380bc899751e80f015401dc6f91a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 19893,
            "upload_time": "2025-09-02T21:54:51",
            "upload_time_iso_8601": "2025-09-02T21:54:51.985794Z",
            "url": "https://files.pythonhosted.org/packages/a8/3e/8c9e87e4fc3c6c987a7f663730994fca8bfd8b61b821e401507384ee41f0/catalogus-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-02 21:54:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "breezy-team",
    "github_project": "catalogus",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "catalogus"
}
        
Elapsed time: 2.25200s