aries_cloudagent.config package

Submodules

aries_cloudagent.config.argparse module

Command line option parsing.

class aries_cloudagent.config.argparse.AdminGroup[source]

Bases: aries_cloudagent.config.argparse.ArgumentGroup

Admin server settings.

CATEGORIES = ('start',)
GROUP_NAME = 'Admin'
add_arguments(parser: argparse.ArgumentParser)[source]

Add admin-specific command line arguments to the parser.

get_settings(args: argparse.Namespace)[source]

Extract admin settings.

class aries_cloudagent.config.argparse.ArgumentGroup[source]

Bases: abc.ABC

A class representing a group of related command line arguments.

GROUP_NAME = None
add_arguments(parser: argparse.ArgumentParser)[source]

Add arguments to the provided argument parser.

get_settings(args: argparse.Namespace) → dict[source]

Extract settings from the parsed arguments.

class aries_cloudagent.config.argparse.DebugGroup[source]

Bases: aries_cloudagent.config.argparse.ArgumentGroup

Debug settings.

CATEGORIES = ('start',)
GROUP_NAME = 'Debug'
add_arguments(parser: argparse.ArgumentParser)[source]

Add debug command line arguments to the parser.

get_settings(args: argparse.Namespace) → dict[source]

Extract debug settings.

class aries_cloudagent.config.argparse.GeneralGroup[source]

Bases: aries_cloudagent.config.argparse.ArgumentGroup

General settings.

CATEGORIES = ('general', 'start')
GROUP_NAME = 'General'
add_arguments(parser: argparse.ArgumentParser)[source]

Add general command line arguments to the parser.

get_settings(args: argparse.Namespace) → dict[source]

Extract general settings.

class aries_cloudagent.config.argparse.LedgerGroup[source]

Bases: aries_cloudagent.config.argparse.ArgumentGroup

Ledger settings.

CATEGORIES = ('start', 'general')
GROUP_NAME = 'Ledger'
add_arguments(parser: argparse.ArgumentParser)[source]

Add ledger-specific command line arguments to the parser.

get_settings(args: argparse.Namespace) → dict[source]

Extract ledger settings.

class aries_cloudagent.config.argparse.LoggingGroup[source]

Bases: aries_cloudagent.config.argparse.ArgumentGroup

Logging settings.

CATEGORIES = ('general', 'start')
GROUP_NAME = 'Logging'
add_arguments(parser: argparse.ArgumentParser)[source]

Add logging-specific command line arguments to the parser.

get_settings(args: argparse.Namespace) → dict[source]

Extract logging settings.

class aries_cloudagent.config.argparse.ProtocolGroup[source]

Bases: aries_cloudagent.config.argparse.ArgumentGroup

Protocol settings.

CATEGORIES = ('start',)
GROUP_NAME = 'Protocol'
add_arguments(parser: argparse.ArgumentParser)[source]

Add protocol-specific command line arguments to the parser.

get_settings(args: argparse.Namespace) → dict[source]

Get protocol settings.

class aries_cloudagent.config.argparse.TransportGroup[source]

Bases: aries_cloudagent.config.argparse.ArgumentGroup

Transport settings.

CATEGORIES = ('start',)
GROUP_NAME = 'Transport'
add_arguments(parser: argparse.ArgumentParser)[source]

Add transport-specific command line arguments to the parser.

get_settings(args: argparse.Namespace)[source]

Extract transport settings.

class aries_cloudagent.config.argparse.WalletGroup[source]

Bases: aries_cloudagent.config.argparse.ArgumentGroup

Wallet settings.

CATEGORIES = ('general', 'start')
GROUP_NAME = 'Wallet'
add_arguments(parser: argparse.ArgumentParser)[source]

Add wallet-specific command line arguments to the parser.

get_settings(args: argparse.Namespace) → dict[source]

Extract wallet settings.

class aries_cloudagent.config.argparse.group(*categories)[source]

Bases: object

Decorator for registering argument groups.

classmethod get_registered(category: str = None)[source]

Fetch the set of registered classes in a category.

aries_cloudagent.config.argparse.load_argument_groups(parser: argparse.ArgumentParser, *groups)[source]

Log a set of argument groups into a parser.

Returns:A callable to convert loaded arguments into a settings dictionary

aries_cloudagent.config.base module

Configuration base classes.

class aries_cloudagent.config.base.BaseInjector[source]

Bases: abc.ABC

Base injector class.

copy() → aries_cloudagent.config.base.BaseInjector[source]

Produce a copy of the injector instance.

inject(base_cls: type, settings: Mapping[str, object] = None, *, required: bool = True) → object[source]

Get the provided instance of a given class identifier.

Parameters:
  • cls – The base class to retrieve an instance of
  • settings – An optional mapping providing configuration to the provider
Returns:

An instance of the base class, or None

class aries_cloudagent.config.base.BaseProvider[source]

Bases: abc.ABC

Base provider class.

provide(settings: aries_cloudagent.config.base.BaseSettings, injector: aries_cloudagent.config.base.BaseInjector)[source]

Provide the object instance given a config and injector.

class aries_cloudagent.config.base.BaseSettings[source]

Bases: collections.abc.Mapping, typing.Generic

Base settings class.

copy() → aries_cloudagent.config.base.BaseSettings[source]

Produce a copy of the settings instance.

extend(other: Mapping[str, object]) → aries_cloudagent.config.base.BaseSettings[source]

Merge another mapping to produce a new settings instance.

get_bool(*var_names, default=None) → bool[source]

Fetch a setting as a boolean value.

Parameters:
  • var_names – A list of variable name alternatives
  • default – The default value to return if none are defined
get_int(*var_names, default=None) → int[source]

Fetch a setting as an integer value.

Parameters:
  • var_names – A list of variable name alternatives
  • default – The default value to return if none are defined
get_str(*var_names, default=None) → str[source]

Fetch a setting as a string value.

Parameters:
  • var_names – A list of variable name alternatives
  • default – The default value to return if none are defined
get_value(*var_names, default=None)[source]

Fetch a setting.

Parameters:
  • var_names – A list of variable name alternatives
  • default – The default value to return if none are defined
Returns:

The setting value, if defined, otherwise the default value

exception aries_cloudagent.config.base.ConfigError(*args, error_code: str = None, **kwargs)[source]

Bases: aries_cloudagent.core.error.BaseError

A base exception for all configuration errors.

exception aries_cloudagent.config.base.InjectorError(*args, error_code: str = None, **kwargs)[source]

Bases: aries_cloudagent.config.base.ConfigError

The base exception raised by BaseInjector implementations.

exception aries_cloudagent.config.base.ProviderError(*args, error_code: str = None, **kwargs)[source]

Bases: aries_cloudagent.config.base.ConfigError

The base exception raised by BaseProvider implementations.

exception aries_cloudagent.config.base.SettingsError(*args, error_code: str = None, **kwargs)[source]

Bases: aries_cloudagent.config.base.ConfigError

The base exception raised by BaseSettings implementations.

aries_cloudagent.config.base_context module

Base injection context builder classes.

class aries_cloudagent.config.base_context.ContextBuilder(settings: Mapping[str, object] = None)[source]

Bases: abc.ABC

Base injection context builder class.

build() → aries_cloudagent.config.injection_context.InjectionContext[source]

Build the new injection context.

update_settings(settings: Mapping[str, object])[source]

Update the context builder with additional settings.

aries_cloudagent.config.default_context module

Classes for configuring the default injection context.

class aries_cloudagent.config.default_context.DefaultContextBuilder(settings: Mapping[str, object] = None)[source]

Bases: aries_cloudagent.config.base_context.ContextBuilder

Default context builder.

bind_providers(context: aries_cloudagent.config.injection_context.InjectionContext)[source]

Bind various class providers.

build() → aries_cloudagent.config.injection_context.InjectionContext[source]

Build the new injection context.

load_plugins(context: aries_cloudagent.config.injection_context.InjectionContext)[source]

Set up plugin registry and load plugins.

aries_cloudagent.config.error module

Errors for config modules.

exception aries_cloudagent.config.error.ArgsParseError(*args, error_code: str = None, **kwargs)[source]

Bases: aries_cloudagent.config.base.ConfigError

Error raised when there is a problem parsing the command-line arguments.

aries_cloudagent.config.injection_context module

Injection context implementation.

class aries_cloudagent.config.injection_context.InjectionContext(*, settings: Mapping[str, object] = None, enforce_typing: bool = True)[source]

Bases: aries_cloudagent.config.base.BaseInjector

Manager for configuration settings and class providers.

ROOT_SCOPE = 'application'
copy() → aries_cloudagent.config.injection_context.InjectionContext[source]

Produce a copy of the injector instance.

inject(base_cls: type, settings: Mapping[str, object] = None, *, required: bool = True) → object[source]

Get the provided instance of a given class identifier.

Parameters:
  • cls – The base class to retrieve an instance of
  • settings – An optional mapping providing configuration to the provider
Returns:

An instance of the base class, or None

injector

Accessor for scope-specific injector.

injector_for_scope(scope_name: str) → aries_cloudagent.config.injector.Injector[source]

Fetch the injector for a specific scope.

Parameters:scope_name – The unique scope identifier
scope_name

Accessor for the current scope name.

settings

Accessor for scope-specific settings.

start_scope(scope_name: str, settings: Mapping[str, object] = None) → aries_cloudagent.config.injection_context.InjectionContext[source]

Begin a new named scope.

Parameters:
  • scope_name – The unique name for the scope being entered
  • settings – An optional mapping of additional settings to apply
Returns:

A new injection context representing the scope

update_settings(settings: Mapping[str, object])[source]

Update the scope with additional settings.

exception aries_cloudagent.config.injection_context.InjectionContextError(*args, error_code: str = None, **kwargs)[source]

Bases: aries_cloudagent.config.base.InjectorError

Base class for issues in the injection context.

class aries_cloudagent.config.injection_context.Scope(name, injector)

Bases: tuple

injector

Alias for field number 1

name

Alias for field number 0

aries_cloudagent.config.injector module

Standard Injector implementation.

class aries_cloudagent.config.injector.Injector(settings: Mapping[str, object] = None, enforce_typing: bool = True)[source]

Bases: aries_cloudagent.config.base.BaseInjector

Injector implementation with static and dynamic bindings.

bind_instance(base_cls: type, instance: object)[source]

Add a static instance as a class binding.

bind_provider(base_cls: type, provider: aries_cloudagent.config.base.BaseProvider, *, cache: bool = False)[source]

Add a dynamic instance resolver as a class binding.

clear_binding(base_cls: type)[source]

Remove a previously-added binding.

copy() → aries_cloudagent.config.base.BaseInjector[source]

Produce a copy of the injector instance.

get_provider(base_cls: type)[source]

Find the provider associated with a class binding.

inject(base_cls: type, settings: Mapping[str, object] = None, *, required: bool = True)[source]

Get the provided instance of a given class identifier.

Parameters:
  • cls – The base class to retrieve an instance of
  • params – An optional dict providing configuration to the provider
Returns:

An instance of the base class, or None

settings

Accessor for scope-specific settings.

aries_cloudagent.config.ledger module

Ledger configuration.

aries_cloudagent.config.ledger.accept_taa(ledger: aries_cloudagent.ledger.base.BaseLedger, taa_info, provision: bool = False) → bool[source]

Perform TAA acceptance.

aries_cloudagent.config.ledger.fetch_genesis_transactions(genesis_url: str) → str[source]

Get genesis transactions.

aries_cloudagent.config.ledger.ledger_config(context: aries_cloudagent.config.injection_context.InjectionContext, public_did: str, provision: bool = False) → bool[source]

Perform Indy ledger configuration.

aries_cloudagent.config.logging module

Utilities related to logging.

class aries_cloudagent.config.logging.LoggingConfigurator[source]

Bases: object

Utility class used to configure logging and print an informative start banner.

classmethod configure(logging_config_path: str = None, log_level: str = None, log_file: str = None)[source]

Configure logger.

Parameters:
  • logging_config_path – str: (Default value = None) Optional path to custom logging config
  • log_level – str: (Default value = None)
classmethod print_banner(agent_label, inbound_transports, outbound_transports, public_did, admin_server=None, banner_length=40, border_character=':')[source]

Print a startup banner describing the configuration.

Parameters:
  • agent_label – Agent Label
  • inbound_transports – Configured inbound transports
  • outbound_transports – Configured outbound transports
  • admin_server – Admin server info
  • public_did – Public DID
  • banner_length – (Default value = 40) Length of the banner
  • border_character – (Default value = “:”) Character to use in banner
  • border
aries_cloudagent.config.logging.load_resource(path: str, encoding: str = None) → TextIO[source]

Open a resource file located in a python package or the local filesystem.

Parameters:path – The resource path in the form of dir/file or package:dir/file
Returns:A file-like object representing the resource

aries_cloudagent.config.provider module

Service provider implementations.

class aries_cloudagent.config.provider.CachedProvider(provider: aries_cloudagent.config.base.BaseProvider)[source]

Bases: aries_cloudagent.config.base.BaseProvider

Cache the result of another provider.

provide(config: aries_cloudagent.config.base.BaseSettings, injector: aries_cloudagent.config.base.BaseInjector)[source]

Provide the object instance given a config and injector.

class aries_cloudagent.config.provider.ClassProvider(instance_cls: Union[str, type], *ctor_args, async_init: str = None, **ctor_kwargs)[source]

Bases: aries_cloudagent.config.base.BaseProvider

Provider for a particular class.

class Inject(base_cls: type)[source]

Bases: object

A class for passing injected arguments to the constructor.

provide(config: aries_cloudagent.config.base.BaseSettings, injector: aries_cloudagent.config.base.BaseInjector)[source]

Provide the object instance given a config and injector.

class aries_cloudagent.config.provider.InstanceProvider(instance)[source]

Bases: aries_cloudagent.config.base.BaseProvider

Provider for a previously-created instance.

provide(config: aries_cloudagent.config.base.BaseSettings, injector: aries_cloudagent.config.base.BaseInjector)[source]

Provide the object instance given a config and injector.

class aries_cloudagent.config.provider.StatsProvider(provider: aries_cloudagent.config.base.BaseProvider, methods: Sequence[str], *, ignore_missing: bool = True)[source]

Bases: aries_cloudagent.config.base.BaseProvider

Add statistics to the results of another provider.

provide(config: aries_cloudagent.config.base.BaseSettings, injector: aries_cloudagent.config.base.BaseInjector)[source]

Provide the object instance given a config and injector.

aries_cloudagent.config.settings module

Settings implementation.

class aries_cloudagent.config.settings.Settings(values: Mapping[str, object] = None)[source]

Bases: aries_cloudagent.config.base.BaseSettings

Mutable settings implementation.

clear_value(var_name: str)[source]

Remove a setting.

Parameters:var_name – The name of the setting
copy() → aries_cloudagent.config.base.BaseSettings[source]

Produce a copy of the settings instance.

extend(other: Mapping[str, object]) → aries_cloudagent.config.base.BaseSettings[source]

Merge another settings instance to produce a new instance.

get_value(*var_names, default=None)[source]

Fetch a setting.

Parameters:
  • var_names – A list of variable name alternatives
  • default – The default value to return if none are defined
set_default(var_name: str, value)[source]

Add a setting if not currently defined.

Parameters:
  • var_name – The name of the setting
  • value – The value to assign
set_value(var_name: str, value)[source]

Add a setting.

Parameters:
  • var_name – The name of the setting
  • value – The value to assign

aries_cloudagent.config.util module

Entrypoint.

class aries_cloudagent.config.util.ByteSize(min_size: int = 0, max_size: int = 0)[source]

Bases: object

Argument value parser for byte sizes.

aries_cloudagent.config.util.common_config(settings: Mapping[str, Any])[source]

Perform common app configuration.

aries_cloudagent.config.wallet module

Wallet configuration.

aries_cloudagent.config.wallet.wallet_config(context: aries_cloudagent.config.injection_context.InjectionContext, provision: bool = False)[source]

Initialize the wallet.