# `gbp.config.GbpOptionParser(OptionParser)` class documentation

Part of `gbp.config` (View In Hierarchy)

Known subclasses: gbp.config.GbpOptionParserDebian, gbp.config.GbpOptionParserRpm

Handles commandline options and parsing of config files

Instance Variable | command | the gbp command we store the options for
Instance Variable | prefix | prefix to prepend to all commandline options
Instance Variable | config | current configuration parameters
Class Variable | defaults | defaults value of an option if not in the config file or given on the command line
Class Variable | help | help messages
Class Variable | def_config_files | config files we parse
Class Variable | short_opts | Undocumented
Class Variable | list_opts | Undocumented
Class Method | get_config_files | Get list of config files from the GBP_CONF_FILES environment variable.
Method | config_file_sections | List of all found config file sections
Method | parse_lists | Parse options that can be given as lists
Method | parse_config_files | Parse the possible config files and set appropriate values default values
Method | __init__ | No summary
Instance Variable | sections | Undocumented
Instance Variable | valid_options | Undocumented
Instance Variable | config_parser | Undocumented
Method | get_default | get the default value
Method | get_opt_names | Undocumented
Method | add_config_file_option | No summary
Method | add_boolean_config_file_option | Undocumented
Method | get_config_file_value | Query a single interpolated config file value.
Method | print_help | Print an extended help message, listing all options and any help text provided with them, to 'file' (default stdout).
Method | _read_config_file | Read config file
Method | _warn_old_config_section | Undocumented
Method | _warn_old_gbp_conf | Undocumented
Instance Variable | _warned_old_gbp_conf | Undocumented
Static Method | _listify | No summary
Method | _is_boolean | is option_name a boolean option
Method | _get_bool_default | get default for boolean options this way we can handle no-foo=True and foo=False
Class Method | _name_to_filename | Translate a name like 'system' to a config file name
Class Method | _set_config_file_value | Write a config value to a file creating it if needed

command =
the gbp command we store the options for
(type: string)
prefix =
prefix to prepend to all commandline options
(type: string)
config =
current configuration parameters
(type: dict)
defaults =
defaults value of an option if not in the config file or given on the command line
(type: dict)
help =
help messages
(type: dict)
def_config_files =
config files we parse
(type: dict (type, path))
short_opts =
Undocumented
(type: `Dict[str, str]`)
list_opts =
Undocumented
(type: `List[str]`)
@classmethod
def get_config_files(cls, no_local=(False)):

Get list of config files from the GBP_CONF_FILES environment variable.

Parameters | no_local | don't return the per-repo configuration files (type: `bool`)

Returns

list of config files we need to parse (type: `list`

    >>> import re
    >>> conf_backup = os.getenv('GBP_CONF_FILES')
    >>> if conf_backup is not None: del os.environ['GBP_CONF_FILES']
    >>> homedir = os.path.expanduser("~")
    >>> files = GbpOptionParser.get_config_files()
    >>> files_mangled = [re.sub("^%s" % homedir, 'HOME', file) for file in files]
    >>> sorted(files_mangled)
    ['%(git_dir)s/gbp.conf', '%(top_dir)s/.gbp.conf', '%(top_dir)s/debian/gbp.conf', '/etc/git-buildpackage/gbp.conf', 'HOME/.gbp.conf']
    >>> files = GbpOptionParser.get_config_files(no_local=True)
    >>> files_mangled = [re.sub("^%s" % homedir, 'HOME', file) for file in files]
    >>> sorted(files_mangled)
    ['/etc/git-buildpackage/gbp.conf', 'HOME/.gbp.conf']
    >>> os.environ['GBP_CONF_FILES'] = 'test1:test2'
    >>> GbpOptionParser.get_config_files()
    ['test1', 'test2']
    >>> del os.environ['GBP_CONF_FILES']
    >>> if conf_backup is not None: os.environ['GBP_CONF_FILES'] = conf_backup

)

def _read_config_file(self, repo, filename):

Read config file

def _warn_old_config_section(self, oldcmd, cmd):
Undocumented
def _warn_old_gbp_conf(self, gbp_conf):
overridden in gbp.config.GbpOptionParserDebian, gbp.config.GbpOptionParserRpm
Undocumented
_warned_old_gbp_conf =
Undocumented
(type: `bool`)
@property
def config_file_sections(self):

List of all found config file sections

@staticmethod
def _listify(value):

    >>> GbpOptionParser._listify(None)
    []
    >>> GbpOptionParser._listify('string')
    ['string']
    >>> GbpOptionParser._listify('["q", "e", "d"] ')
    ['q', 'e', 'd']
    >>> GbpOptionParser._listify('[')
    Traceback (most recent call last):
    ...
    configparser.Error: [ is not a proper list

def parse_lists(self):

Parse options that can be given as lists

Since they take multiple arguments they can also be given in plural form e.g. components instead of component.

def parse_config_files(self):

Parse the possible config files and set appropriate values default values

def __init__(self, command, prefix="""""", usage=None, sections=[]):

Parameters | command | the command to build the config parser for (type: `str`)
| prefix | A prefix to add to all command line options (type: `str`)
| usage | a usage description (type: `str`)
| sections | additional (non optional) config file sections to parse (type: `list` of `str`)

sections =
Undocumented
valid_options =
Undocumented
(type: `List`)
config_parser =
Undocumented
def _is_boolean(self, dummy, *unused, **kwargs):

is option_name a boolean option

def _get_bool_default(self, option_name):

get default for boolean options this way we can handle no-foo=True and foo=False

def get_default(self, option_name, **kwargs):

get the default value

def get_opt_names(self, option_name):
Undocumented
@save_option
def add_config_file_option(self, option_name, dest, help=None, **kwargs):

set a option for the command line parser, the default is read from the config file param option_name: name of the option type option_name: string param dest: where to store this option type dest: string param help: help text type help: string

def add_boolean_config_file_option(self, option_name, dest):
Undocumented
def get_config_file_value(self, option_name):

Query a single interpolated config file value.

Parameters | option_name | the config file option to look up (type: string)
Returns | The config file option value or `None` if it doesn't exist (type: `str` or `None`)

def print_help(self, file=None):

Print an extended help message, listing all options and any help text provided with them, to 'file' (default stdout).

@classmethod
def _name_to_filename(cls, name):

Translate a name like 'system' to a config file name

    >>> GbpOptionParser._name_to_filename('foo')
    >>> GbpOptionParser._name_to_filename('system')
    '/etc/git-buildpackage/gbp.conf'
    >>> GbpOptionParser._name_to_filename('global')
    '~/.gbp.conf'
    >>> GbpOptionParser._name_to_filename('debian')
    '%(top_dir)s/debian/gbp.conf'

@classmethod
def _set_config_file_value(cls, section, option, value, name=None, filename=None):

Write a config value to a file creating it if needed

On errors a ConfigParserError is raised