pkgcore.util.commandline module¶
Utilities for writing commandline utilities.
pkgcore scripts should use the ArgumentParser
subclass here for a
consistent commandline “look and feel” (and it tries to make life a
bit easier too). They will probably want to use main
from an C{if
__name__ == ‘__main__’} block too: it will take care of things like
consistent exception handling.
See dev-notes/commandline.rst for more complete documentation.
- class pkgcore.util.commandline.ArgumentParser(suppress=False, help=True, config=True, domain=True, global_config=(), **kwds)[source]¶
Bases:
ArgumentParser
- class pkgcore.util.commandline.BooleanQuery(attrs, klass_type=None, priority=100, converter=None)[source]¶
Bases:
DelayedValue
- class pkgcore.util.commandline.DomainFromPath(*args, **kwargs)[source]¶
Bases:
StoreConfigObject
- exception pkgcore.util.commandline.NoDefaultConfigError(argument, message)[source]¶
Bases:
ArgumentError
- class pkgcore.util.commandline.StoreConfigObject(*args, **kwargs)[source]¶
Bases:
_StoreAction
- default_priority = 20¶
- class pkgcore.util.commandline.StoreRepoObject(*args, **kwargs)[source]¶
Bases:
StoreConfigObject
Load a repo object from the config.
- valid_repo_types = {'all': 'repos', 'all-raw': 'repos_raw', 'binary': 'binary_repos', 'binary-raw': 'binary_repos_raw', 'binary-unfiltered': 'binary_repos_unfiltered', 'config': 'repo_configs', 'ebuild': 'ebuild_repos', 'ebuild-raw': 'ebuild_repos_raw', 'ebuild-unfiltered': 'ebuild_repos_unfiltered', 'installed': 'installed_repos', 'installed-raw': 'installed_repos_raw', 'source': 'source_repos', 'source-raw': 'source_repos_raw', 'unfiltered': 'unfiltered_repos'}¶
- class pkgcore.util.commandline.StoreTarget(*args, **kwargs)[source]¶
Bases:
_AppendAction
Parse extended package atom syntax and optionally set arguments.
Various target arguments are supported including the following:
- atom
An extended atom syntax is supported, see the related section in pkgcore(5).
- package set
Used to define lists of packages, the syntax used for these is @pkgset. For example, the @system and @world package sets are supported.
- extended globbing
Globbing package names or atoms allows for use cases such as
'far*'
(merge every package starting with ‘far’),'dev-python/*::gentoo'
(merge every package in the dev-python category from the gentoo repo), or even ‘*’ (merge everything).
Also, the target ‘-’ allows targets to be read from standard input.
- class pkgcore.util.commandline.Tool(parser, outfile=None, errfile=None)[source]¶
Bases:
Tool
pkgcore-specific commandline utility functionality.
- pkgcore.util.commandline.convert_to_restrict(sequence, default=<AlwaysBool always True @0x7f857d6c8e80>)[source]¶
Convert an iterable to a list of atoms, or return the default
- pkgcore.util.commandline.python_namespace_type(value, module=False, attribute=False)[source]¶
return the object from python namespace that value specifies
- Parameters:
value – python namespace, snakeoil.modules for example
module – if true, the object must be a module
attribute – if true, the object must be a non-module
- Raises:
ValueError – if the conditions aren’t met, or import fails