Closed
Description
In pydantic 2.0+ the BaseSettings
class has been moved into a optional package, pydantic-settings. The configuration provider's from_pydantic
method expect to find it in the pydantic package:
This results in an error like:
container.config.from_pydantic(settings)
src/dependency_injector/providers.pyx:2381: in dependency_injector.providers.Configuration.from_pydantic
???
.venv/lib/python3.11/site-packages/pydantic/__init__.py:218: in __getattr__
return _getattr_migration(attr_name)
.venv/lib/python3.11/site-packages/pydantic/_migration.py:294: in wrapper
raise PydanticImportError(
E pydantic.errors.PydanticImportError: `BaseSettings` has been moved to the `pydantic-settings` package. See https://docs.pydantic.dev/2.4/migration/#basesettings-has-moved-to-pydantic-settings for more details.
Furthermore, the BaseModel.dict
method used in the last line of this method is deprecated and has been replaced by BaseModel.model_dump
. The method still exists but emits deprecation warnings when accessed.