objectory
Python library for general purpose object factories
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
Repository
Python library for general purpose object factories
Basic Info
- Host: GitHub
- Owner: durandtibo
- License: bsd-3-clause
- Language: Python
- Default Branch: main
- Homepage: https://durandtibo.github.io/objectory/
- Size: 3.57 MB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 13
Metadata Files
README.md
objectory = object + factory
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) []
```
```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...>
```
```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
- Repositories: 37
- Profile: https://github.com/durandtibo
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 | 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
Pull Request Labels
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
- Homepage: https://github.com/durandtibo/objectory
- Documentation: https://objectory.readthedocs.io/
- License: BSD-3-Clause
-
Latest release: 0.2.0
published over 1 year ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- snok/install-poetry v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- snok/install-poetry v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- snok/install-poetry v1 composite
- 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
- python ^3.9
- tornado ^6.0
- 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
- actions/checkout v3 composite
- actions/dependency-review-action v2 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- snok/install-poetry v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- snok/install-poetry v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- pre-commit/action v3.0.0 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- snok/install-poetry v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- snok/install-poetry v1 composite