objectory

Python library for general purpose object factories

https://github.com/durandtibo/objectory

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.2%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Python library for general purpose object factories

Basic Info
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 13
Created about 3 years ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Codeowners

README.md

objectory = object + factory

CI Nightly Tests Nightly Package Tests Codecov
Documentation Documentation
Code style: black Doc style: google Ruff Doc style: google
PYPI version Python BSD-3-Clause
Downloads Monthly downloads

Overview

A Python library for general purpose object factories. In particular, it focuses on dynamic object factory implementations where objects can be registered dynamically without changing the code of the factory. An object factory can be used to instantiate an object from its configuration. The current implementation contains both abstract factory and registry approaches.

factory

```pycon

from objectory import factory obj = factory("builtins.list") print(obj) []

```

abstract factory

```pycon

from objectory import AbstractFactory class BaseClass(metaclass=AbstractFactory): ... pass ... class MyClass(BaseClass): ... pass ... obj = BaseClass.factory("MyClass") print(obj) <main.MyClass object at 0x...>

```

registry

```pycon

from objectory import Registry registry = Registry() @registry.register() ... class MyClass: ... pass ... obj = registry.factory("MyClass") print(obj) <main.MyClass object at 0x...>

```

Please read the documentation to learn more about these approaches.

Installation

We highly recommend installing a virtual environment. objectory can be installed from pip using the following command:

shell pip install objectory

It is highly recommended to use the last stable version available. Please check the get started page to see other alternatives to install the library. The following is the corresponding objectory versions and supported dependencies.

| objectory | tornado | python | |-------------|--------------|---------------| | main | >=6.0,<7.0 | >=3.9,<3.14 | | 0.2.0 | >=6.0,<7.0 | >=3.9,<3.14 | | 0.1.2 | >=6.0,<7.0 | >=3.9,<3.13 | | 0.1.1 | >=6.0,<7.0 | >=3.9,<3.13 | | 0.1.0 | >=6.0,<7.0 | >=3.9,<3.13 | | 0.0.9 | >=6.0,<7.0 | >=3.9,<3.13 | | 0.0.8 | >=6.0,<7.0 | >=3.9,<3.13 | | 0.0.7 | >=6.0,<7.0 | >=3.9,<3.12 |

Contributing

Please check the instructions in CONTRIBUTING.md.

API stability

:warning: While objectory is in development stage, no API is guaranteed to be stable from one release to the next. In fact, it is very likely that the API will change multiple times before a stable 1.0.0 release. In practice, this means that upgrading objectory to a new version will possibly break any code that was using the old version of objectory.

License

objectory is licensed under BSD 3-Clause "New" or "Revised" license available in LICENSE file.

Owner

  • Name: Thibaut Durand
  • Login: durandtibo
  • Kind: user
  • Location: Vancouver, Canada
  • Company: Borealis AI

Researcher in Computer Vision and Machine Learning. This profile is used for personal projects/contributions

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this library, please cite it as below."
authors:
- family-names: "Durand"
  given-names: "Thibaut"

title: "OBJECTORY: A Python library for general purpose object factories"
date-released: 2023-04-04
url: "https://github.com/durandtibo/objectory"

Committers

Last synced: about 3 years ago

All Time
  • Total Commits: 29
  • Total Committers: 1
  • Avg Commits per committer: 29.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Thibaut Durand d****o@g****m 29

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 2
  • Total pull requests: 667
  • Average time to close issues: 1 day
  • Average time to close pull requests: 4 days
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 0.5
  • Average comments per pull request: 1.1
  • Merged pull requests: 525
  • Bot issues: 2
  • Bot pull requests: 520
Past Year
  • Issues: 2
  • Pull requests: 299
  • Average time to close issues: 1 day
  • Average time to close pull requests: 3 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 0.5
  • Average comments per pull request: 1.11
  • Merged pull requests: 260
  • Bot issues: 2
  • Bot pull requests: 267
Top Authors
Issue Authors
  • dependabot[bot] (2)
Pull Request Authors
  • dependabot[bot] (457)
  • durandtibo (147)
  • github-actions[bot] (63)
Top Labels
Issue Labels
dependencies (2) python (2)
Pull Request Labels
dependencies (457) python (360) github_actions (20)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 329,785 last-month
  • Total dependent packages: 7
  • Total dependent repositories: 2
  • Total versions: 17
  • Total maintainers: 1
pypi.org: objectory

A light library for general purpose object factories

  • Versions: 17
  • Dependent Packages: 7
  • Dependent Repositories: 2
  • Downloads: 329,785 Last month
Rankings
Downloads: 1.4%
Dependent packages count: 1.6%
Dependent repos count: 11.5%
Average: 16.6%
Forks count: 29.8%
Stargazers count: 38.8%
Maintainers (1)
Last synced: 7 months ago

Dependencies

.github/workflows/ci.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • snok/install-poetry v1 composite
.github/workflows/docs.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • snok/install-poetry v1 composite
.github/workflows/pypi.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • snok/install-poetry v1 composite
poetry.lock pypi
  • astroid 2.12.13 develop
  • attrs 22.2.0 develop
  • black 22.12.0 develop
  • certifi 2022.12.7 develop
  • cfgv 3.3.1 develop
  • charset-normalizer 2.1.1 develop
  • click 8.1.3 develop
  • codecov 2.1.12 develop
  • colorama 0.4.6 develop
  • coverage 6.5.0 develop
  • dill 0.3.6 develop
  • distlib 0.3.6 develop
  • docformatter 1.5.1 develop
  • exceptiongroup 1.1.0 develop
  • filelock 3.9.0 develop
  • flake8 6.0.0 develop
  • flake8-black 0.3.6 develop
  • flake8-bugbear 22.12.6 develop
  • ghp-import 2.1.0 develop
  • identify 2.5.11 develop
  • idna 3.4 develop
  • importlib-metadata 6.0.0 develop
  • iniconfig 1.1.1 develop
  • isort 5.11.4 develop
  • jinja2 3.1.2 develop
  • lazy-object-proxy 1.8.0 develop
  • markdown 3.4.1 develop
  • markupsafe 2.1.1 develop
  • mccabe 0.7.0 develop
  • mergedeep 1.3.4 develop
  • mkdocs 1.3.0 develop
  • mkdocs-autorefs 0.4.1 develop
  • mkdocs-material 8.5.4 develop
  • mkdocs-material-extensions 1.1.1 develop
  • mkdocstrings 0.19.1 develop
  • mypy-extensions 0.4.3 develop
  • nodeenv 1.7.0 develop
  • packaging 22.0 develop
  • pathspec 0.10.3 develop
  • platformdirs 2.6.2 develop
  • pluggy 1.0.0 develop
  • pre-commit 2.21.0 develop
  • pycodestyle 2.10.0 develop
  • pyflakes 3.0.1 develop
  • pygments 2.14.0 develop
  • pylint 2.15.9 develop
  • pymdown-extensions 9.9 develop
  • pytest 7.2.0 develop
  • pytest-cov 4.0.0 develop
  • pytest-timeout 2.1.0 develop
  • python-dateutil 2.8.2 develop
  • pyyaml 6.0 develop
  • pyyaml-env-tag 0.1 develop
  • requests 2.28.1 develop
  • setuptools 65.6.3 develop
  • six 1.16.0 develop
  • tomli 2.0.1 develop
  • tomlkit 0.11.6 develop
  • typing-extensions 4.4.0 develop
  • untokenize 0.1.1 develop
  • urllib3 1.26.13 develop
  • virtualenv 20.17.1 develop
  • watchdog 2.2.1 develop
  • wrapt 1.14.1 develop
  • zipp 3.11.0 develop
  • tornado 6.2
pyproject.toml pypi
  • python ^3.9
  • tornado ^6.0
.github/workflows/coverage.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • paambaati/codeclimate-action v4.0.0 composite
  • snok/install-poetry v1 composite
.github/workflows/dependency-review.yml actions
  • actions/checkout v3 composite
  • actions/dependency-review-action v2 composite
.github/workflows/doctest.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • snok/install-poetry v1 composite
.github/workflows/format.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • snok/install-poetry v1 composite
.github/workflows/nightly-package.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/nightly-tests.yaml actions
.github/workflows/pre-commit.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pre-commit/action v3.0.0 composite
.github/workflows/test-deps.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • snok/install-poetry v1 composite
.github/workflows/test.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • snok/install-poetry v1 composite
environment.yaml pypi