* Add example for Annotated attribute injection for module/class attributes
* Fix attribute injection with Annotated types
* Add unit tests for Annotated attribute and argument injection in wiring
* Add .cursor to .gitignore
* Style: add blank lines between class definitions and attributes in annotated attribute example
* Docs: clarify and format module/class attribute injection for classic and Annotated forms
* Changelog: add note and discussion link for Annotated attribute injection support
* Fix nls
* Fix CI checks and Python 3.8 tests
* Fix PR issues
* Fix Python 3.8 tests
* Fix flake8 issues
* Fix: robust Annotated detection for wiring across Python versions
* Refactor: extract annotation retrieval and improve typing for Python 3.9 compatibility
* Update src/dependency_injector/wiring.py
Co-authored-by: ZipFile <zipfile.d@protonmail.com>
---------
Co-authored-by: ZipFile <zipfile.d@protonmail.com>
* Add support for Pydantic v2 settings
* Configure pipeline to run tests against different pydantic versions
* Update Pydantic docs and examples for v2
* Fix compatibility with httpx v0.27.0
* Fix a statement about coupling and cohesion that is not always true
https://enterprisecraftsmanship.com/posts/cohesion-coupling-difference/#_types_of_code_from_a_cohesion_and_coupling_perspective
* Fix a typing issue in an example
`ApiClient` expects timeout to be an integer (based on a type hint), but `os.getenv` returns a string when `TIMEOUT` is set.
* Specify the `None` return type where it is missed
* Fix typing issues in some other places
* Edit a statement about coupling and cohesion
Co-authored-by: Roman Mogylatov <rmogilatov@gmail.com>
Co-authored-by: Roman Mogylatov <rmogilatov@gmail.com>
* Update application-single-container example
* Update application-multiple-containers example
* Update decoupled-packages example
* Update movie lister example
* Update CLI tutorial
* Update sanic example
* Update sanic example with wiring_config
* Update fastapi example
* Update fastapi-simple example
* Update fastapi-sqlalchemy example
* Update flask-blueprints example
* Update flask example and tutorial
* Update aiohttp example and tutorial
* Update asyncio-daemon example and tutorial
* Add provider changes and tests
* Move config test fixtures
* Fix issue with explicit providing of envs_required=False for configuration from_*()
* Implement container API
* Increase priority of overriding from context
* Add docs and example
* Update changelog
* Update changelog
* Update main example
* Updating wiring module
* Update wiring test case name
* Implement string imports for wiring
* Update example
* Refactor implementation
* Update front example
* Fix a typo in README
* Update wiring docs
* Update single container example
* Update multiple containers example
* Update quotes in multiple containers example
* Update quotes in single container example
* Update decoupled-packages example
* Update single and multiple containers example
* Update quotes
* Update fastapi+redis example
* Update resource docs
* Update quotes in CLI tutorial
* Update CLI application (movie lister) tutorial
* Update monitoring daemon example
* Update python version in asyncio daemon example
* Update asyncio daemon tutorial
* Update quotes in wiring docs
* Update wiring docs
* Make prototype with enterpolation before parsing
* Add test for option.from_yaml() with missing env not required
* Make some cosmetic changes to _resolve_config_env_markers()
* Add test for option.from_ini() missing envs not required
* Skip schema test cause it requires internet connection
* Add tests for .from_yaml() for config and config option
* Add tests for .from_ini() for config and config option
* Add example for os.environ.setdefault() and envs interpolation
* Add/update docs on environment variables interpolation
* Update changelog
* Add implementation and typing stubs
* Make some refactoring and add tests
* Pin ubuntu version to 18.04
* Add docs and example
* Add changelog
* Add container docs
* Add implementation
* Add tests for module and class
* Add tests for module and class for string ids
* Update tests with typing
* Add tests for invalid type of marker
* Add docs and the example
* Update changelog
* Fix Python 3.6 tests and flake8