Option Setting Locations¶
The get_location()
method of ConfigOpts
can
be used to determine where the value for an option was set, either by
the user or by the application code. The return value is a
LocationInfo
instance, which includes 2 fields: location
and detail
.
The location
value is a member of the Locations
enum,
which has 5 possible values. The detail
value is a string
describing the location. Its value depends on the location
.
Value |
|
Description |
|
---|---|---|---|
|
|
The original default set when the option was defined. |
The source file name where the option is defined. |
|
|
A default value set by the application as an override of the original default. This usually only applies to options defined in libraries. |
The source file name where |
|
|
A forced value set by the application. |
The source file name where |
|
|
A value set by the user through a configuration backend such as a file. |
The configuration file where the option is set. |
|
|
A value set by the user on the command line. |
Empty string. |
|
|
A value set by the user in the process environment. |
The name of the environment variable. |
Did a user set a configuration option?¶
Each Locations
enum value has a boolean property indicating
whether that type of location is managed by the user. This eliminates
the need for application code to track which types of locations are
user-controlled separately.
loc = CONF.get_location('normal_opt').location
if loc.is_user_controlled:
print('normal_opt was set by the user')
else:
print('normal_opt was set by the application')