Warning
This documentation is for an old version of IPython. You can find docs for newer versions here.
Module: config.loader
¶
A simple configuration system.
15 Classes¶
-
class
IPython.config.loader.
ConfigError
¶ Bases:
Exception
-
class
IPython.config.loader.
ConfigLoaderError
¶
-
class
IPython.config.loader.
ConfigFileNotFound
¶
-
class
IPython.config.loader.
ArgumentError
¶
-
class
IPython.config.loader.
ArgumentParser
(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=<class 'argparse.HelpFormatter'>, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True)¶ Bases:
argparse.ArgumentParser
Simple argparse subclass that prints help to stdout by default.
-
class
IPython.config.loader.
LazyConfigValue
(*args, **kw)¶ Bases:
IPython.utils.traitlets.HasTraits
Proxy object for exposing methods on configurable containers
Exposes:
- append, extend, insert on lists
- update on dicts
- update, add on sets
-
get_value
(initial)¶ construct the value from the initial one
after applying any insert / extend / update changes
-
prepend
(other)¶ like list.extend, but for the front
-
to_dict
()¶ return JSONable dict form of my data
Currently update as dict or set, extend, prepend as lists, and inserts as list of tuples.
-
class
IPython.config.loader.
Config
(*args, **kwds)¶ Bases:
dict
An attribute based dict that can do smart merges.
-
__init__
(*args, **kwds)¶
-
collisions
(other)¶ Check for collisions between two config objects.
Returns a dict of the form {“Class”: {“trait”: “collision message”}}`, indicating which values have been ignored.
An empty dict indicates no collisions.
-
merge
(other)¶ merge another config object into this one
-
-
class
IPython.config.loader.
ConfigLoader
(log=None)¶ Bases:
object
A object for loading configurations from just about anywhere.
The resulting configuration is packaged as a
Config
.Notes
A
ConfigLoader
does one thing: load a config from a source (file, command line arguments) and returns the data as aConfig
object. There are lots of things thatConfigLoader
does not do. It does not implement complex logic for finding config files. It does not handle default values or merge multiple configs. These things need to be handled elsewhere.-
__init__
(log=None)¶ A base class for config loaders.
- log : instance of
logging.Logger
to use. - By default loger of
IPython.config.application.Application.instance()
will be used
Examples
>>> cl = ConfigLoader() >>> config = cl.load_config() >>> config {}
- log : instance of
-
-
class
IPython.config.loader.
FileConfigLoader
(filename, path=None, **kw)¶ Bases:
IPython.config.loader.ConfigLoader
A base class for file based configurations.
As we add more file based config loaders, the common logic should go here.
-
__init__
(filename, path=None, **kw)¶ Build a config loader for a filename and path.
Parameters: filename : str
The file name of the config file.
path : str, list, tuple
The path to search for the config file on, or a sequence of paths to try in order.
-
-
class
IPython.config.loader.
JSONFileConfigLoader
(filename, path=None, **kw)¶ Bases:
IPython.config.loader.FileConfigLoader
A JSON file loader for config
-
load_config
()¶ Load the config from a file and return it as a Config object.
-
-
class
IPython.config.loader.
PyFileConfigLoader
(filename, path=None, **kw)¶ Bases:
IPython.config.loader.FileConfigLoader
A config loader for pure python files.
This is responsible for locating a Python config file by filename and path, then executing it to construct a Config object.
-
load_config
()¶ Load the config from a file and return it as a Config object.
-
-
class
IPython.config.loader.
CommandLineConfigLoader
(log=None)¶ Bases:
IPython.config.loader.ConfigLoader
A config loader for command line arguments.
As we add more command line based loaders, the common logic should go here.
-
class
IPython.config.loader.
KeyValueConfigLoader
(argv=None, aliases=None, flags=None, **kw)¶ Bases:
IPython.config.loader.CommandLineConfigLoader
A config loader that loads key value pairs from the command line.
This allows command line options to be gives in the following form:
ipython --profile="foo" --InteractiveShell.autocall=False
-
__init__
(argv=None, aliases=None, flags=None, **kw)¶ Create a key value pair config loader.
Parameters: argv : list
A list that has the form of sys.argv[1:] which has unicode elements of the form u”key=value”. If this is None (default), then sys.argv[1:] will be used.
aliases : dict
A dict of aliases for configurable traits. Keys are the short aliases, Values are the resolved trait. Of the form:
{'alias' : 'Configurable.trait'}
flags : dict
A dict of flags, keyed by str name. Vaues can be Config objects, dicts, or “key=value” strings. If Config or dict, when the flag is triggered, The flag is loaded as
self.config.update(m)
.Returns: config : Config
The resulting Config object.
Examples
>>> from IPython.config.loader import KeyValueConfigLoader >>> cl = KeyValueConfigLoader() >>> d = cl.load_config(["--A.name='brian'","--B.number=0"]) >>> sorted(d.items()) [('A', {'name': 'brian'}), ('B', {'number': 0})]
-
load_config
(argv=None, aliases=None, flags=None)¶ Parse the configuration and generate the Config object.
After loading, any arguments that are not key-value or flags will be stored in self.extra_args - a list of unparsed command-line arguments. This is used for arguments such as input files or subcommands.
Parameters: argv : list, optional
A list that has the form of sys.argv[1:] which has unicode elements of the form u”key=value”. If this is None (default), then self.argv will be used.
aliases : dict
A dict of aliases for configurable traits. Keys are the short aliases, Values are the resolved trait. Of the form:
{'alias' : 'Configurable.trait'}
flags : dict
A dict of flags, keyed by str name. Values can be Config objects or dicts. When the flag is triggered, The config is loaded as
self.config.update(cfg)
.
-
-
class
IPython.config.loader.
ArgParseConfigLoader
(argv=None, aliases=None, flags=None, log=None, *parser_args, **parser_kw)¶ Bases:
IPython.config.loader.CommandLineConfigLoader
A loader that uses the argparse module to load from the command line.
-
__init__
(argv=None, aliases=None, flags=None, log=None, *parser_args, **parser_kw)¶ Create a config loader for use with argparse.
Parameters: argv : optional, list
If given, used to read command-line arguments from, otherwise sys.argv[1:] is used.
parser_args : tuple
A tuple of positional arguments that will be passed to the constructor of
argparse.ArgumentParser
.parser_kw : dict
A tuple of keyword arguments that will be passed to the constructor of
argparse.ArgumentParser
.Returns: config : Config
The resulting Config object.
-
load_config
(argv=None, aliases=None, flags=None)¶ Parse command line arguments and return as a Config object.
Parameters: args : optional, list
If given, a list with the structure of sys.argv[1:] to parse arguments from. If not given, the instance’s self.argv attribute (given at construction time) is used.
-
-
class
IPython.config.loader.
KVArgParseConfigLoader
(argv=None, aliases=None, flags=None, log=None, *parser_args, **parser_kw)¶ Bases:
IPython.config.loader.ArgParseConfigLoader
A config loader that loads aliases and flags with argparse, but will use KVLoader for the rest. This allows better parsing of common args, such as
ipython -c 'print 5'
, but still gets arbitrary config withipython --InteractiveShell.use_readline=False
1 Function¶
-
IPython.config.loader.
load_pyconfig_files
(config_files, path)¶ Load multiple Python config files, merging each of them in turn.
Parameters: config_files : list of str
List of config files names to load and merge into the config.
path : unicode
The full path to the location of the config files.