Metadata-Version: 2.2
Name: inject-x
Version: 0.0.0
Summary: Natural language request to json converter library
Author-email: Colageo Mirko <mirko.colageo@gmail.com>
License: MIT License
Project-URL: Homepage, https://github.com/bocejo5/injectx
Project-URL: Documentation, https://github.com/bocejo5/injectx
Project-URL: Repository, https://github.com/bocejo5/injectx
Project-URL: Issues, https://github.com/bocejo5/injectx/issues
Keywords: ioc,dependency injection,inversion of control,automatic class loader
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11.5
Description-Content-Type: text/markdown
Requires-Dist: backports.tarfile==1.2.0
Requires-Dist: build==1.2.2.post1
Requires-Dist: bumpver==2024.1130
Requires-Dist: certifi==2025.1.31
Requires-Dist: cffi==1.17.1
Requires-Dist: charset-normalizer==3.4.1
Requires-Dist: click==8.1.8
Requires-Dist: colorama==0.4.6
Requires-Dist: cryptography==43.0.3
Requires-Dist: docutils==0.21.2
Requires-Dist: id==1.5.0
Requires-Dist: idna==3.10
Requires-Dist: importlib_metadata==8.6.1
Requires-Dist: injector==0.22.0
Requires-Dist: jaraco.classes==3.4.0
Requires-Dist: jaraco.context==6.0.1
Requires-Dist: jaraco.functools==4.1.0
Requires-Dist: jeepney==0.9.0
Requires-Dist: keyring==25.6.0
Requires-Dist: lexid==2021.1006
Requires-Dist: markdown-it-py==3.0.0
Requires-Dist: mdurl==0.1.2
Requires-Dist: more-itertools==10.6.0
Requires-Dist: nh3==0.2.21
Requires-Dist: packaging==24.2
Requires-Dist: pycparser==2.22
Requires-Dist: Pygments==2.19.1
Requires-Dist: pyproject_hooks==1.2.0
Requires-Dist: readme_renderer==44.0
Requires-Dist: requests==2.32.3
Requires-Dist: requests-toolbelt==1.0.0
Requires-Dist: rfc3986==2.0.0
Requires-Dist: rich==13.9.4
Requires-Dist: SecretStorage==3.3.3
Requires-Dist: toml==0.10.2
Requires-Dist: tomli==2.2.1
Requires-Dist: twine==6.1.0
Requires-Dist: typing_extensions==4.12.2
Requires-Dist: urllib3==2.3.0
Requires-Dist: zipp==3.21.0

# Project "INJECT-X"

<small>version 0.0.1 of 03/05/2025</small>

## Summary

-   [Glossary](#glossary)
-   [Project Description](#project-description)
    -   [Features](#features)
-   [Build](#build-package)

## Glossary

| Term | Description |
| ---- | ----------- |

## Project Description

Project `inject-x` is based on [injector](https://pypi.org/project/injector/) library in order to give additional features.

### Features:

#### 1. Automatic context loader

Providing a folder path the library will load every class that inherit from `Presentation`, `Repository`, `Service`, `Config` classes.

```py
from src.injectx import Injector, Presentation, Repository

inj: Injector = Injector().register_all_from_folder("path_to_folder")
```

#### 2. Getter for a given child's classes

After registrating classes we can retrieve all child's classes with:

```py
from src.injectx import Injector, Presentation, Repository

class Pres1(Presentation):...
class Pres2(Pres1):...
class Pres3(Pres2):...

res_pres = inj.get_all_by_type(Presentation)
```

it will returns instances of `Pres1`, `Pres2`, `Pres3` classes.

## Build package

```bash
bumpver update --patch  # or --minor / --major
python -m build
twine upload dist/* # to upload to pypi
```

## Sommario

Referente: <mirko.colageo@gmail.com>
