@@ -5,7 +5,7 @@ Configuration provider
55
66.. meta ::
77 :keywords: Python,DI,Dependency injection,IoC,Inversion of Control,Configuration,Injection,
8- Option,Ini,Json,Yaml,Pydantic,Dict,Environment Variable,Load,Read,Get
8+ Option,Ini,Json,Yaml,Pydantic,Dict,Environment Variable,Default, Load,Read,Get
99 :description: Configuration provides configuration options to the other providers. This page
1010 demonstrates how to use Configuration provider to inject the dependencies, load
1111 a configuration from an ini or yaml file, a dictionary, an environment variable,
@@ -43,8 +43,18 @@ where ``examples/providers/configuration/config.ini`` is:
4343 :language: ini
4444
4545:py:meth: `Configuration.from_ini ` method supports environment variables interpolation. Use
46- ``${ENV_NAME} `` format in the configuration file to substitute value of the environment
47- variable ``ENV_NAME ``.
46+ ``${ENV_NAME} `` format in the configuration file to substitute value from ``ENV_NAME `` environment
47+ variable.
48+
49+ You can also specify a default value using ``${ENV_NAME:default} `` format. If environment
50+ variable ``ENV_NAME `` is undefined, configuration provider will substitute value ``default ``.
51+
52+ .. code-block :: ini
53+
54+ [section]
55+ option1 = {$ENV_VAR}
56+ option2 = {$ENV_VAR}/path
57+ option3 = {$ENV_VAR:default}
4858
4959 Loading from a YAML file
5060------------------------
@@ -62,12 +72,22 @@ where ``examples/providers/configuration/config.yml`` is:
6272.. literalinclude :: ../../examples/providers/configuration/config.yml
6373 :language: ini
6474
65- :py:meth: `Configuration.from_yaml ` method uses custom version of ``yaml.SafeLoader ``.
75+ :py:meth: `Configuration.from_yaml ` method supports environment variables interpolation. Use
76+ ``${ENV_NAME} `` format in the configuration file to substitute value from ``ENV_NAME `` environment
77+ variable.
78+
79+ You can also specify a default value using ``${ENV_NAME:default} `` format. If environment
80+ variable ``ENV_NAME `` is undefined, configuration provider will substitute value ``default ``.
81+
82+ .. code-block :: ini
6683
67- The loader supports environment variables interpolation. Use ``${ENV_NAME} `` format
68- in the configuration file to substitute value of the environment variable ``ENV_NAME ``.
84+ section:
85+ option1: {$ENV_VAR}
86+ option2: {$ENV_VAR}/path
87+ option3: {$ENV_VAR:default}
6988
70- You can also specify a YAML loader as an argument:
89+ :py:meth: `Configuration.from_yaml ` method uses custom version of ``yaml.SafeLoader ``.
90+ To use another loader use ``loader `` argument:
7191
7292.. code-block :: python
7393
@@ -144,6 +164,17 @@ Loading from an environment variable
144164 :lines: 3-
145165 :emphasize-lines: 18-20
146166
167+ Loading a value
168+ ---------------
169+
170+ ``Configuration `` provider can load configuration value using the
171+ :py:meth: `Configuration.from_value ` method:
172+
173+ .. literalinclude :: ../../examples/providers/configuration/configuration_value.py
174+ :language: python
175+ :lines: 3-
176+ :emphasize-lines: 14-15
177+
147178Loading from the multiple sources
148179---------------------------------
149180
0 commit comments