@@ -147,23 +147,28 @@ case-insensitive and stored in lowercase [1]_.
147
147
It is possible to read several configurations into a single
148
148
:class: `ConfigParser `, where the most recently added configuration has the
149
149
highest priority. Any conflicting keys are taken from the more recent
150
- configuration while the previously existing keys are retained.
150
+ configuration while the previously existing keys are retained. The example
151
+ below reads in an ``override.ini `` file, which will override any conflicting
152
+ keys from the ``example.ini `` file.
153
+
154
+ .. code-block :: ini
155
+
156
+ [DEFAULT]
157
+ ServerAliveInterval = -1
151
158
152
159
.. doctest ::
153
160
154
- >>> another_config = configparser.ConfigParser()
155
- >>> another_config.read(' example.ini' )
156
- ['example.ini']
157
- >>> another_config[' topsecret.server.example' ][' Port' ]
158
- '50022'
159
- >>> another_config.read_string(" [topsecret.server.example]\n Port=48484" )
160
- >>> another_config[' topsecret.server.example' ][' Port' ]
161
- '48484'
162
- >>> another_config.read_dict({" topsecret.server.example" : {" Port" : 21212 }})
163
- >>> another_config[' topsecret.server.example' ][' Port' ]
164
- '21212'
165
- >>> another_config[' topsecret.server.example' ][' ForwardX11' ]
166
- 'no'
161
+ >>> config_override = configparser.ConfigParser()
162
+ >>> config_override[' DEFAULT' ] = {' ServerAliveInterval' : ' -1' }
163
+ >>> with open (' override.ini' , ' w' ) as configfile:
164
+ ... config_override.write(configfile)
165
+ ...
166
+ >>> config_override = configparser.ConfigParser()
167
+ >>> config_override.read([' example.ini' , ' override.ini' ])
168
+ ['example.ini', 'override.ini']
169
+ >>> print (config_override.get(' DEFAULT' , ' ServerAliveInterval' ))
170
+ -1
171
+
167
172
168
173
This behaviour is equivalent to a :meth: `ConfigParser.read ` call with several
169
174
files passed to the *filenames * parameter.
@@ -958,6 +963,31 @@ ConfigParser Objects
958
963
converter gets its own corresponding :meth: `!get*() ` method on the parser
959
964
object and section proxies.
960
965
966
+ It is possible to read several configurations into a single
967
+ :class: `ConfigParser `, where the most recently added configuration has the
968
+ highest priority. Any conflicting keys are taken from the more recent
969
+ configuration while the previously existing keys are retained. The example
970
+ below reads in an ``override.ini `` file, which will override any conflicting
971
+ keys from the ``example.ini `` file.
972
+
973
+ .. code-block :: ini
974
+
975
+ [DEFAULT]
976
+ ServerAliveInterval = -1
977
+
978
+ .. doctest ::
979
+
980
+ >>> config_override = configparser.ConfigParser()
981
+ >>> config_override[' DEFAULT' ] = {' ServerAliveInterval' : ' -1' }
982
+ >>> with open (' override.ini' , ' w' ) as configfile:
983
+ ... config_override.write(configfile)
984
+ ...
985
+ >>> config_override = configparser.ConfigParser()
986
+ >>> config_override.read([' example.ini' , ' override.ini' ])
987
+ ['example.ini', 'override.ini']
988
+ >>> print (config_override.get(' DEFAULT' , ' ServerAliveInterval' ))
989
+ -1
990
+
961
991
.. versionchanged :: 3.1
962
992
The default *dict_type * is :class: `collections.OrderedDict `.
963
993
0 commit comments