ConfigParser
class Dialect
The ConfigParser
class is used throughout the project. It assumes and understands a specific dialect, hence it's vital to know it and understand it.
Below are the concepts of that dialect:
all configuration elements passed to the
ConfigParser
class are bundled in a list,all configuration elements are case-sensitive,
if an element is
str
, it is the name of an element,if an element is
dict
, the key is treated as the name of the element and the value is simply a configuration for this element,the
all
item is equal to all items from the valid configuration elements,an empty list is the same as the list containing only the
all
item,excluding elements are supported by prefixing an item with an exclamation mark, for example,
'!config'
will skip the'config'
element.These elements are called
not-element
s. They are useful when combined withall
. For example: a list of:['all', '!tcp']
or simply['!tcp']
would take all valid elements except fortcp
.Having that said:
a list containing only
not-element
s is treated as if'all'
would have been specified explicitly,order does not matter,
you can override elements implicitly specified with
all
. This means that:when:
the following list is passed:
- Python
- YAML
[
'all',
{ 'content_version': {
'version': '1234-5678'}
}
]- all
- content_version:
version: '1234-5678'content_version
is a valid element
then:
all
is expanded to all valid elements butcontent_version
is skipped during expansion (since an explicit definition for it is already available).