• Get Review Board
  • What's New
  • Products
  • Review Board Code review, image review, and document review
  • Documentation
  • Release Notes
  • Power Pack Enterprise integrations, reports, and enhanced document review
  • Try for 60 Days
  • Purchase
  • RBCommons Review Board as a Service, hosted by us
  • Pricing
  • RBTools Command line tools and Python API for Review Board
  • Documentation
  • Release Notes
  • Review Bot Automated code review, connecting tools you already use
  • Documentation
  • Release Notes
  • RB Gateway Manage Git and Mercurial repositories in your network
  • Documentation
  • Release Notes
  • Learn and Explore
  • What is Code Review?
  • Documentation
  • Frequently Asked Questions
  • Support Options
  • Third-Party Integrations
  • Demo
  • Review Board RBTools Power Pack Review Bot Djblets RB Gateway
    1. RBTools 5.x
    2. Version 5.x
    3. Version 4.x
    4. Version 3.x
    5. Version 2.0
    6. Version 1.0
    7. Version 0.7
    8. Version 0.6
    9. Version 0.5
    10. RBTools Python API
    11. Module and Class References
    12. rbtools.commands.base
  • Home
  • Installing RBTools
  • rbt Command
  • Configuration
  • Authenticating to Review Board
  • Repository Configuration
  • Per-User Configuration
  • Team Foundation Server Configuration
  • Commands
  • alias
  • api-get
  • attach
  • clear-cache
  • close
  • diff
  • install
  • land
  • list-repo-types
  • login
  • logout
  • patch
  • post
  • publish
  • review
  • setup-completion
  • setup-repo
  • stamp
  • status
  • status-update
  • RBTools Workflows
  • Using RBTools With Cliosoft SOS
  • Using RBTools with Git
  • Using RBTools with HCL VersionVault and IBM ClearCase
  • Using RBTools With Perforce
  • RBTools Python API
  • Overview of the Python API Client
  • Tutorial
  • Resource-Specific Functionality
  • Module and Class References
  • rbtools
  • rbtools.deprecation
  • rbtools.api
  • rbtools.api.cache
  • rbtools.api.capabilities
  • rbtools.api.client
  • rbtools.api.decode
  • rbtools.api.decorators
  • rbtools.api.errors
  • rbtools.api.factory
  • rbtools.api.request
  • rbtools.api.resource
  • rbtools.api.transport
  • rbtools.api.transport.sync
  • rbtools.api.utils
  • rbtools.clients
  • rbtools.clients.base
  • rbtools.clients.base.patch
  • rbtools.clients.base.registry
  • rbtools.clients.base.repository
  • rbtools.clients.base.scmclient
  • rbtools.clients.errors
  • rbtools.clients.bazaar
  • rbtools.clients.clearcase
  • rbtools.clients.cvs
  • rbtools.clients.git
  • rbtools.clients.mercurial
  • rbtools.clients.perforce
  • rbtools.clients.plastic
  • rbtools.clients.sos
  • rbtools.clients.svn
  • rbtools.clients.tfs
  • rbtools.config
  • rbtools.config.config
  • rbtools.config.loader
  • rbtools.diffs
  • rbtools.diffs.patches
  • rbtools.diffs.patcher
  • rbtools.diffs.tools
  • rbtools.diffs.tools.backends
  • rbtools.diffs.tools.backends.gnu
  • rbtools.diffs.tools.base
  • rbtools.diffs.tools.base.diff_file_result
  • rbtools.diffs.tools.base.diff_tool
  • rbtools.diffs.tools.errors
  • rbtools.diffs.tools.registry
  • rbtools.diffs.writers
  • rbtools.commands
  • rbtools.commands.main
  • rbtools.commands
  • rbtools.commands.base
  • rbtools.commands.base.commands
  • rbtools.commands.base.errors
  • rbtools.commands.base.options
  • rbtools.commands.base.output
  • rbtools.commands.alias
  • rbtools.commands.api_get
  • rbtools.commands.attach
  • rbtools.commands.clearcache
  • rbtools.commands.close
  • rbtools.commands.diff
  • rbtools.commands.info
  • rbtools.commands.install
  • rbtools.commands.land
  • rbtools.commands.list_repo_types
  • rbtools.commands.login
  • rbtools.commands.logout
  • rbtools.commands.patch
  • rbtools.commands.post
  • rbtools.commands.publish
  • rbtools.commands.review
  • rbtools.commands.setup_completion
  • rbtools.commands.setup_repo
  • rbtools.commands.stamp
  • rbtools.commands.status
  • rbtools.commands.status_update
  • rbtools.hooks
  • rbtools.hooks.common
  • rbtools.hooks.git
  • rbtools.testing
  • rbtools.testing.api
  • rbtools.testing.api.payloads
  • rbtools.testing.api.transport
  • rbtools.testing.commands
  • rbtools.testing.testcase
  • rbtools.testing.transport
  • rbtools.utils
  • rbtools.utils.aliases
  • rbtools.utils.browser
  • rbtools.utils.checks
  • rbtools.utils.commands
  • rbtools.utils.console
  • rbtools.utils.diffs
  • rbtools.utils.encoding
  • rbtools.utils.errors
  • rbtools.utils.filesystem
  • rbtools.utils.graphs
  • rbtools.utils.mimetypes
  • rbtools.utils.process
  • rbtools.utils.repository
  • rbtools.utils.review_request
  • rbtools.utils.source_tree
  • rbtools.utils.users
  • Glossary
  • General Index
  • Python Module Index
  • Release Notes
  • rbtools.commands.base¶

    Base support for commands.

    This provides support for writing and executing commands. This can be used by third-parties that want to introduce new commands for RBTools.

    This module provides forwarding imports for:

    BaseCommand

    Base class for RBTools commands.

    BaseMultiCommand

    Abstract base class for commands which offer subcommands.

    BaseSubCommand

    Abstract base class for a subcommand.

    CommandError

    A general error for a command.

    CommandExit

    An error indicating a command is ready to exit.

    ParseError

    An error indicating a command failed to parse some information.

    Option

    Represents an option for a command.

    OptionGroup

    Represents a named group of options.

    New in version 5.0.

    class rbtools.commands.base.BaseCommand(transport_cls: type[Transport] = <class 'rbtools.api.transport.sync.SyncTransport'>, stdout: TextIO = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, stderr: TextIO = <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>, stdin: TextIO = <_io.TextIOWrapper name='<stdin>' mode='r' encoding='utf-8'>)¶

    Bases: object

    Base class for RBTools commands.

    This class will handle retrieving the configuration, and parsing command line options.

    usage is a list of usage strings each showing a use case. These should not include the main rbt command or the command name; they will be added automatically.

    Changed in version 5.0: This moved from rbtools.commands to rbtools.commands.base.commands.

    name: ClassVar[str] = ''¶

    The name of the command.

    Type:

    str

    author: ClassVar[str] = ''¶

    The author of the command.

    Type:

    str

    description: ClassVar[str] = ''¶

    A short description of the command, suitable for display in usage text.

    Type:

    str

    needs_api: ClassVar[bool] = False¶

    Whether the command needs the API client.

    If this is set, the initialization of the command will set api_client and api_root.

    New in version 3.0.

    Type:

    bool

    needs_diffs: ClassVar[bool] = False¶

    Whether the command needs to generate diffs.

    If this is set, the initialization of the command will check for the presence of a diff tool compatible with the chosen type of repository.

    This depends on needs_repository and needs_scm_client both being set to True.

    New in version 4.0.

    Type:

    bool

    needs_scm_client: ClassVar[bool] = False¶

    Whether the command needs the SCM client.

    If this is set, the initialization of the command will set repository_info and tool.

    New in version 3.0.

    Type:

    bool

    needs_repository: ClassVar[bool] = False¶

    Whether the command needs the remote repository object.

    If this is set, the initialization of the command will set repository.

    Setting this will imply setting both needs_api and needs_scm_client to True.

    New in version 3.0.

    Type:

    bool

    args: ClassVar[str] = ''¶

    Usage text for what arguments the command takes.

    Arguments for the command are anything passed in other than defined options (for example, revisions passed to rbt post).

    Type:

    str

    option_list: ClassVar[list[Union[Option, OptionGroup]]] = []¶

    Command-line options for this command.

    Type:

    list of Option or OptionGroup

    options: argparse.Namespace¶

    Options parsed for the command.

    server_options = <rbtools.commands.base.options.OptionGroup object>¶
    repository_options = <rbtools.commands.base.options.OptionGroup object>¶
    diff_options = <rbtools.commands.base.options.OptionGroup object>¶
    branch_options = <rbtools.commands.base.options.OptionGroup object>¶
    git_options = <rbtools.commands.base.options.OptionGroup object>¶
    perforce_options = <rbtools.commands.base.options.OptionGroup object>¶
    subversion_options = <rbtools.commands.base.options.OptionGroup object>¶
    tfs_options = <rbtools.commands.base.options.OptionGroup object>¶
    default_transport_cls¶

    alias of SyncTransport

    __init__(transport_cls: type[Transport] = <class 'rbtools.api.transport.sync.SyncTransport'>, stdout: TextIO = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, stderr: TextIO = <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>, stdin: TextIO = <_io.TextIOWrapper name='<stdin>' mode='r' encoding='utf-8'>) → None¶

    Initialize the base functionality for the command.

    Parameters:
    • transport_cls (rbtools.api.transport.Transport, optional) – The transport class used for all API communication. By default, this uses the transport defined in default_transport_cls.

    • stdout (io.TextIOWrapper, optional) –

      The standard output stream. This can be used to capture output programmatically.

      New in version 3.1.

    • stderr (io.TextIOWrapper, optional) –

      The standard error stream. This can be used to capture errors programmatically.

      New in version 3.1.

    • stdin (io.TextIOWrapper, optional) –

      The standard input stream. This can be used to provide input programmatically.

      New in version 3.1.

    log: logging.Logger¶

    A logger for the command.

    transport_cls: type[Transport]¶

    The transport class used for talking to the API.

    api_client: Optional[RBClient]¶

    The client used to connect to the API.

    This will be set when the command is run if needs_api is True. Otherwise it will be None.

    api_root: Optional[RootResource]¶

    The root of the API tree.

    This will be set when the command is run if needs_api is True. Otherwise it will be None.

    capabilities: Optional[Capabilities]¶

    Capabilities set by the API.

    This will be set when the command is run if needs_api is True. Otherwise it will be None.

    repository: Optional[Resource]¶

    The resource for the matching repository.

    This will be set when the command is run if both needs_api and needs_repository are True.

    repository_info: Optional[RepositoryInfo]¶

    Information on the local repository.

    This will be set when the command is run if needs_scm_client is run. Otherwise it will be None.

    server_url: Optional[str]¶

    The URL to the Review Board server.

    This will be set when the command is run if needs_api is True.

    tool: Optional[BaseSCMClient]¶

    The client/tool used to communicate with the repository.

    This will be set when the command is run if needs_scm_client is run. Otherwise it will be None.

    config: Optional[RBToolsConfig]¶

    The loaded configuration for RBTools.

    Changed in version 5.0: This is now a RBToolsConfig instance, instead of a plain dictionary.

    stdout: OutputWrapper[str]¶

    The stream for writing standard output as Unicode strings.

    Commands should write text using this instead of print() or sys.stdout().

    stderr: OutputWrapper[str]¶

    The stream for writing error output as Unicode strings.

    Commands should write error text using this instead of print() or sys.stderr().

    stdin: TextIO¶

    The stream for reading standard input.

    Commands should read input from here instead of using sys.stdin().

    New in version 3.1.

    stdout_bytes: OutputWrapper[bytes]¶

    The stream for writing standard output as byte strings.

    Commands should write text using this instead of print() or sys.stdout().

    stderr_bytes: OutputWrapper[bytes]¶

    The stream for writing error output as byte strings.

    Commands should write error text using this instead of print() or sys.stderr().

    stdout_is_atty: bool¶

    Whether the stdout stream is from an interactive session.

    This applies to stdout.

    New in version 3.1.

    stderr_is_atty: bool¶

    Whether the stderr stream is from an interactive session.

    This applies to stderr.

    New in version 3.1.

    stdin_is_atty: bool¶

    Whether the stdin stream is from an interactive session.

    This applies to stdin.

    New in version 3.1.

    json: JSONOutput¶

    An output buffer for JSON results.

    Commands can set this to return data used when a command is passed --json.

    create_parser(config: RBToolsConfig, argv: Optional[list[str]] = None) → argparse.ArgumentParser¶

    Return a new argument parser for this command.

    Parameters:
    • config (dict) – The loaded RBTools configuration.

    • argv (list of str) – The list of command line arguments.

    Returns:

    The new argument parser for the command.

    Return type:

    argparse.ArgumentParser

    post_process_options() → None¶

    Post-process options for the command.

    This can validate and update options before the command is invoked.

    Raises:

    rbtools.commands.base.errors.CommandError – There was an error found with an option.

    usage() → str¶

    Return a usage string for the command.

    Returns:

    Usage text for the command.

    Return type:

    str

    initialize() → None¶

    Initialize the command.

    This will set up various prerequisites for commands. Individual command subclasses can control what gets done by setting the various needs_* attributes (as documented in this class).

    Raises:
    • rbtools.commands.base.errors.CommandError – An error occurred while initializing the command.

    • rbtools.commands.base.errors.NeedsReinitialize – The initialization process needs to be restarted (due to loading additional config).

    create_arg_parser(argv: list[str]) → argparse.ArgumentParser¶

    Create and return the argument parser.

    Parameters:

    argv (list of str) – A list of command line arguments

    Returns:

    Argument parser for commandline arguments

    Return type:

    argparse.ArgumentParser

    run_from_argv(argv: list[str]) → None¶

    Execute the command using the provided arguments.

    The options and commandline arguments will be parsed from argv and the commands main method will be called.

    Parameters:

    argv (list of str) – A list of command line arguments

    initialize_scm_tool(client_name: Optional[str] = None, *, tool_required: bool = True) → tuple[Optional[RepositoryInfo], Optional[BaseSCMClient]]¶

    Initialize the SCM tool for the current working directory.

    Changed in version 5.0.3: Added the tool_required argument.

    Changed in version 5.0: Removed deprecated require_repository_info argument.

    Parameters:
    • client_name (str, optional) – A specific client name, which can come from the configuration. This can be used to disambiguate if there are nested repositories, or to speed up detection.

    • tool_required (bool, optional) –

      Whether a tool is required to be found or not.

      New in version 5.0.3.

    Returns:

    A 2-tuple:

    Tuple:
    • 0 (rbtools.clients.base.repository.RepositoryInfo) – The repository information.

    • 1 (rbtools.clients.base.scmclient.BaseSCMClient) – The SCMTool client instance.

    Return type:

    tuple

    credentials_prompt(realm: str, uri: str, username: Optional[str] = None, password: Optional[str] = None, *args, **kwargs) → tuple[str, str]¶

    Prompt the user for credentials using the command line.

    This will prompt the user, and then return the provided username and password. This is used as a callback in the API when the user requires authorization.

    Parameters:
    • realm (str) – The HTTP realm.

    • uri (str) – The URI of the endpoint requiring authentication.

    • username (str, optional) – The default username for authentication.

    • password (str, optional) – The default password for authentication.

    • *args (tuple, unused) – Unused additional positional arguments.

    • **kwargs (dict, unused) – Unused additional keyword arguments.

    Returns:

    A 2-tuple of:

    Tuple:
    • username (str) – The user-provided username.

    • password (str) – The user-provided password.

    Return type:

    tuple

    Raises:

    rbtools.commands.base.errors.CommandError – HTTP authentication failed.

    otp_token_prompt(uri: str, token_method: str, *args, **kwargs) → str¶

    Prompt the user for a one-time password token.

    Their account is configured with two-factor authentication. The server will have sent a token to their configured mobile device or application. The user will be prompted for this token.

    Parameters:
    • uri (str) – The URI of the endpoint requiring authentication.

    • token_method (str) – The token method requested.

    • *args (tuple, unused) – Unused positional arguments.

    • **kwargs (dict, unused) – Unused keyword arguments.

    Returns:

    The user-provided token.

    Return type:

    str

    get_api(server_url: str) → tuple[RBClient, RootResource]¶

    Return an RBClient instance and the associated root resource.

    Commands should use this method to gain access to the API, instead of instantianting their own client.

    Parameters:

    server_url (str) – The URL to the Review Board server.

    Returns:

    A 2-tuple of:

    Tuple:
    • 0 (rbtools.api.client.RBClient) – The new API client.

    • 1 (rbtools.api.resource.RootResource) – The root resource for the API.

    Return type:

    tuple

    get_capabilities(api_root: RootResource) → Capabilities¶

    Retrieve capabilities from the server and return them.

    Parameters:

    api_root (rbtools.api.resource.RootResource) – The root resource

    Returns:

    The server capabilities.

    Return type:

    rbtools.api.capabilities.Capabilities

    main(*args) → int¶

    Run the main logic of the command.

    This method should be overridden to implement the commands functionality.

    Parameters:

    *args (tuple) – Positional arguments passed to the command.

    Returns:

    The resulting exit code.

    Return type:

    int

    class rbtools.commands.base.BaseMultiCommand(transport_cls: type[Transport] = <class 'rbtools.api.transport.sync.SyncTransport'>, stdout: TextIO = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, stderr: TextIO = <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>, stdin: TextIO = <_io.TextIOWrapper name='<stdin>' mode='r' encoding='utf-8'>)¶

    Bases: BaseCommand

    Abstract base class for commands which offer subcommands.

    Some commands (such as rbt review) want to offer many subcommands.

    New in version 3.0.

    subcommands: list[type[BaseSubCommand]] = []¶

    The available subcommands.

    This is a list of BaseSubCommand subclasses.

    Type:

    list

    common_subcommand_option_list: list[Union[Option, OptionGroup]] = []¶

    Options common to all subcommands.

    Type:

    list

    subcommand: BaseSubCommand¶

    The currently-running subcommand.

    subcommand_parsers: dict[str, argparse.ArgumentParser]¶

    A mapping of subcommand names to argument parsers.

    usage(command_cls: Optional[type[rbtools.commands.base.commands.BaseSubCommand]] = None) → str¶

    Return a usage string for the command.

    Parameters:

    command_cls (type, optional) – The subcommand class to generate usage information for.

    Returns:

    The usage string.

    Return type:

    str

    create_parser(config: RBToolsConfig, argv: Optional[list[str]] = None) → argparse.ArgumentParser¶

    Create and return the argument parser for this command.

    Parameters:
    • config (dict) – The loaded RBTools config.

    • argv (list, optional) – The argument list.

    Returns:

    The argument parser.

    Return type:

    argparse.ArgumentParser

    initialize() → None¶

    Initialize the command.

    main(*args) → int¶

    Run the command.

    Parameters:

    *args (tuple) – Positional arguments passed to the command.

    Returns:

    The resulting exit code.

    Return type:

    int

    class rbtools.commands.base.BaseSubCommand(options: Namespace, config: RBToolsConfig, *args, **kwargs)¶

    Bases: BaseCommand

    Abstract base class for a subcommand.

    help_text: str = ''¶

    The subcommand’s help text.

    Type:

    str

    __init__(options: Namespace, config: RBToolsConfig, *args, **kwargs) → None¶

    Initialize the subcommand.

    Parameters:
    • options (argparse.Namespace) – The parsed options.

    • config (rbtools.config.RBToolsConfigg) – The loaded RBTools configuration.

    • *args (list) – Positional arguments to pass to the Command class.

    • **kwargs (dict) – Keyword arguments to pass to the Command class.

    exception rbtools.commands.base.CommandError¶

    Bases: Exception

    A general error for a command.

    exception rbtools.commands.base.CommandExit(exit_code: int = 0)¶

    Bases: Exception

    An error indicating a command is ready to exit.

    __init__(exit_code: int = 0) → None¶

    Initialize the error.

    Parameters:

    exit_code (int) – The exit code.

    exit_code: int¶

    The exit code.

    class rbtools.commands.base.Option(*opts: str, **attrs)¶

    Bases: object

    Represents an option for a command.

    The arguments to the constructor should be treated like those to argparse’s add_argument, with the exception that the keyword argument ‘config_key’ is also valid. If config_key is provided it will be used to retrieve the config value as a default if the option is not specified. This will take precedence over the default argument.

    Serves as a wrapper around the ArgumentParser options, allowing us to specify defaults which will be grabbed from the configuration after it is loaded.

    New in version 5.0: This is the new location for the old rbtools.commands.Option class.

    __init__(*opts: str, **attrs) → None¶

    Initialize the option.

    Parameters:
    • *opts (tuple of str) – The long and short form option names.

    • **attrs (dict) – The attributes for the option.

    opts: tuple[str, ...]¶

    The long and short form option names.

    Type:

    tuple

    attrs: dict[str, Any]¶

    The attributes for the option.

    Type:

    dict

    add_to(parent: argparse._ActionsContainer, config: Optional[RBToolsConfig] = None, argv: Optional[list[str]] = None) → None¶

    Add the option to the parent parser or group.

    If the option maps to a configuration key, this will handle figuring out the correct default.

    Once we’ve determined the right set of flags, the option will be added to the parser.

    Parameters:
    • parent (argparse._ActionsContainer) – The parent argument parser or group.

    • config (dict) – The loaded RBTools configuration.

    • argv (list, deprecated) – Unused list of deprecated command line arguments.

    class rbtools.commands.base.OptionGroup(name: Optional[str] = None, description: Optional[str] = None, option_list: Optional[list[Option]] = None)¶

    Bases: object

    Represents a named group of options.

    Each group has a name, an optional description, and a list of options. It serves as a way to organize related options, making it easier for users to scan for the options they want.

    This works like argparse’s argument groups, but is designed to work with our special Option class.

    New in version 5.0: This is the new location for the old rbtools.commands.OptionGroup class.

    __init__(name: Optional[str] = None, description: Optional[str] = None, option_list: Optional[list[Option]] = None) → None¶

    Initialize the option group.

    Parameters:
    • name (str, optional) – The name of the option group.

    • description (str, optional) – The description of this option group.

    • option_list (list of Option, optional) – The list of options in this group.

    name: Optional[str]¶

    The name of this option group.

    This may be None.

    Type:

    str

    description: Optional[str]¶

    The description of this option group.

    This may be None.

    Type:

    str

    option_list: list[Option]¶

    The list of options this group was initialized with.

    Type:

    list of Option

    add_to(parser: argparse.ArgumentParser, config: RBToolsConfig, argv: Optional[list[str]] = None) → None¶

    Add the group and all its contained options to the parser.

    Parameters:
    • parser (argparse.ArgumentParser) – The command-line parser.

    • config (rbtools.config.RBToolsConfig) – The loaded RBTools configuration.

    • argv (list, deprecated) – Unused legacy argument.

    exception rbtools.commands.base.ParseError¶

    Bases: CommandError

    An error indicating a command failed to parse some information.

    Keep up with the latest Review Board releases, security updates, and helpful information.

    About
    News
    Demo
    RBCommons Hosting
    Integrations
    Happy Users
    Support Options
    Documentation
    FAQ
    User Manual
    RBTools
    Administration Guide
    Power Pack
    Release Notes
    Downloads
    Review Board
    RBTools
    Djblets
    Power Pack
    Package Store
    PGP Signatures
    Contributing
    Bug Tracker
    Submit Patches
    Development Setup
    Wiki
    Follow Us
    Mailing Lists
    Reddit
    Twitter
    Mastodon
    Facebook
    YouTube

    Copyright © 2006-2025 Beanbag, Inc. All rights reserved.

    Terms of Service — Privacy Policy — AI Ethics Policy — Branding

    On this page

    • [Top]
    • BaseCommand
      • BaseCommand.name
      • BaseCommand.author
      • BaseCommand.description
      • BaseCommand.needs_api
      • BaseCommand.needs_diffs
      • BaseCommand.needs_scm_client
      • BaseCommand.needs_repository
      • BaseCommand.args
      • BaseCommand.option_list
      • BaseCommand.options
      • BaseCommand.server_options
      • BaseCommand.repository_options
      • BaseCommand.diff_options
      • BaseCommand.branch_options
      • BaseCommand.git_options
      • BaseCommand.perforce_options
      • BaseCommand.subversion_options
      • BaseCommand.tfs_options
      • BaseCommand.default_transport_cls
      • BaseCommand.__init__()
      • BaseCommand.log
      • BaseCommand.transport_cls
      • BaseCommand.api_client
      • BaseCommand.api_root
      • BaseCommand.capabilities
      • BaseCommand.repository
      • BaseCommand.repository_info
      • BaseCommand.server_url
      • BaseCommand.tool
      • BaseCommand.config
      • BaseCommand.stdout
      • BaseCommand.stderr
      • BaseCommand.stdin
      • BaseCommand.stdout_bytes
      • BaseCommand.stderr_bytes
      • BaseCommand.stdout_is_atty
      • BaseCommand.stderr_is_atty
      • BaseCommand.stdin_is_atty
      • BaseCommand.json
      • BaseCommand.create_parser()
      • BaseCommand.post_process_options()
      • BaseCommand.usage()
      • BaseCommand.initialize()
      • BaseCommand.create_arg_parser()
      • BaseCommand.run_from_argv()
      • BaseCommand.initialize_scm_tool()
      • BaseCommand.credentials_prompt()
      • BaseCommand.otp_token_prompt()
      • BaseCommand.get_api()
      • BaseCommand.get_capabilities()
      • BaseCommand.main()
    • BaseMultiCommand
      • BaseMultiCommand.subcommands
      • BaseMultiCommand.common_subcommand_option_list
      • BaseMultiCommand.subcommand
      • BaseMultiCommand.subcommand_parsers
      • BaseMultiCommand.usage()
      • BaseMultiCommand.create_parser()
      • BaseMultiCommand.initialize()
      • BaseMultiCommand.main()
    • BaseSubCommand
      • BaseSubCommand.help_text
      • BaseSubCommand.__init__()
    • CommandError
    • CommandExit
      • CommandExit.__init__()
      • CommandExit.exit_code
    • Option
      • Option.__init__()
      • Option.opts
      • Option.attrs
      • Option.add_to()
    • OptionGroup
      • OptionGroup.__init__()
      • OptionGroup.name
      • OptionGroup.description
      • OptionGroup.option_list
      • OptionGroup.add_to()
    • ParseError