pip_services3_components.config package

Submodules

Module contents

pip_services3_components.config.__init__

Contains implementation of the config design pattern.

ConfigReader’s Parameterize method allows us to take a standard configuration, and, using a set of current parameters (e.g. environment variables), parameterize it. When we create the configuration of a container, we can use environment variables to tailor it to the system, dynamically add addresses, ports, etc.

copyright

Conceptual Vision Consulting LLC 2018-2019, see AUTHORS for more details.

license

MIT, see LICENSE for more details.

class pip_services3_components.config.ConfigReader

Bases: pip_services3_components.config.IConfigReader.IConfigReader, pip_services3_commons.config.IConfigurable.IConfigurable

Abstract config reader that supports configuration parameterization.

### Configuration parameters ### parameters: this entire section is used as template parameters

add_change_listener(listener: pip_services3_commons.run.INotifiable.INotifiable)

Adds a listener that will be notified when configuration is changed

Parameters

listener – a listener to be added.

configure(config: pip_services3_commons.config.ConfigParams.ConfigParams)

Configures component by passing configuration parameters.

Parameters

config – configuration parameters to be set.

abstract read_config_(correlation_id: Optional[str], parameters: pip_services3_commons.config.ConfigParams.ConfigParams)pip_services3_commons.config.ConfigParams.ConfigParams

Reads configuration and parameterize it with given values.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • parameters – values to parameters the configuration or null to skip parameterization.

Returns

ConfigParams configuration.

remove_change_listener(listener: pip_services3_commons.run.INotifiable.INotifiable)

Remove a previously added change listener.

Parameters

listener – a listener to be removed.

class pip_services3_components.config.DefaultConfigReaderFactory

Bases: pip_services3_components.build.Factory.Factory

Creates IConfigReader components by their descriptors.

See Factory, MemoryConfigReader, JsonConfigReader, YamlConfigReader

JsonConfigReaderDescriptor = <pip_services3_commons.refer.Descriptor.Descriptor object>
MemoryConfigReaderDescriptor = <pip_services3_commons.refer.Descriptor.Descriptor object>
YamlConfigReaderDescriptor = <pip_services3_commons.refer.Descriptor.Descriptor object>
class pip_services3_components.config.FileConfigReader(path: str = None)

Bases: pip_services3_components.config.ConfigReader.ConfigReader

Abstract config reader that reads configuration from a file. Child classes add support for config files in their specific format like JSON, YAML or property files.

### Configuration parameters ###
  • path: path to configuration file

  • parameters: this entire section is used as template parameters

configure(config: pip_services3_commons.config.ConfigParams.ConfigParams)

Configures component by passing configuration parameters.

Parameters

config – configuration parameters to be set.

get_path()str

Get the path to configuration file.

Returns

the path to configuration file.

set_path(path: str)

Set the path to configuration file.

Parameters

path – a new path to configuration file.

class pip_services3_components.config.IConfigReader

Bases: abc.ABC

Interface for configuration readers that retrieve configuration from various sources and make it available for other components.

Some IConfigReader implementations may support configuration parameterization. The parameterization allows to use configuration as a template and inject there dynamic values. The values may come from application command like arguments or environment variables.

add_change_listener(listener: pip_services3_commons.run.INotifiable.INotifiable)

Adds a listener that will be notified when configuration is changed

Parameters

listener – a listener to be added.

read_config_(correlation_id: Optional[str], parameters: pip_services3_commons.config.ConfigParams.ConfigParams)pip_services3_commons.config.ConfigParams.ConfigParams

Reads configuration and parameterize it with given values.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • parameters – values to parameters the configuration or null to skip parameterization.

Returns

ConfigParams configuration.

remove_change_listener(listener: pip_services3_commons.run.INotifiable.INotifiable)

Remove a previously added change listener.

Parameters

listener – a listener to be removed.

class pip_services3_components.config.JsonConfigReader(path: str = None)

Bases: pip_services3_components.config.FileConfigReader.FileConfigReader

Config reader that reads configuration from JSON file.

The reader supports parameterization using Handlebar template engine.

### Configuration parameters ###

  • path: path to configuration file

  • parameters: this entire section is used as template parameters

Example:

======== config.json ======
{ "key1": "{{KEY1_VALUE}}", "key2": "{{KEY2_VALUE}}" }
===========================
configReader = JsonConfigReader("config.json")
parameters = ConfigParams.from_tuples("KEY1_VALUE", 123, "KEY2_VALUE", "ABC")
configReader.read_config_("123", parameters)
static read_config(correlation_id: Optional[str], path: str, parameters: pip_services3_commons.config.ConfigParams.ConfigParams)pip_services3_commons.config.ConfigParams.ConfigParams

Reads configuration from a file, parameterize it with given values and returns a new ConfigParams object.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • path – a path to configuration file.

  • parameters – values to parameters the configuration.

Returns

ConfigParams configuration.

read_config_(correlation_id: Optional[str], parameters: pip_services3_commons.config.ConfigParams.ConfigParams)pip_services3_commons.config.ConfigParams.ConfigParams

Reads configuration and parameterize it with given values.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • parameters – values to parameters the configuration or null to skip parameterization.

Returns

ConfigParams configuration.

static read_object(correlation_id: Optional[str], path: str, parameters: pip_services3_commons.config.ConfigParams.ConfigParams) → Any

Reads configuration file, parameterizes its content and converts it into JSON object.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • path – a path to configuration file.

  • parameters – values to parameters the configuration.

Returns

a JSON object with configuration.

read_object_(correlation_id: Optional[str], parameters: pip_services3_commons.config.ConfigParams.ConfigParams) → Any

Reads configuration file, parameterizes its content and converts it into JSON object.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • parameters – values to parameters the configuration.

Returns

a JSON object with configuration.

class pip_services3_components.config.MemoryConfigReader(config: pip_services3_commons.config.ConfigParams.ConfigParams = None)

Bases: pip_services3_components.config.IConfigReader.IConfigReader, pip_services3_commons.config.IReconfigurable.IReconfigurable

Config reader that stores configuration in memory.

### Configuration parameters ###

The configuration parameters are the configuration template

Example:

config = ConfigParams.from_tuples(
                "connection.host", "localhost",
                "connection.port", "8080"
        )

configReader = MemoryConfigReader()
configReader.configure(config)

parameters = ConfigParams.fromValue(os.get_env())
configReader.read_config_("123", parameters)
add_change_listener(listener: pip_services3_commons.run.INotifiable.INotifiable)

Adds a listener that will be notified when configuration is changed

Parameters

listener – a listener to be added.

configure(config: pip_services3_commons.config.ConfigParams.ConfigParams)

Configures component by passing configuration parameters.

Parameters

config – configuration parameters to be set.

read_config_(correlation_id: Optional[str], parameters: pip_services3_commons.config.ConfigParams.ConfigParams)pip_services3_commons.config.ConfigParams.ConfigParams

Reads configuration and parameterize it with given values.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • parameters – values to parameters the configuration or null to skip parameterization.

Returns

ConfigParams configuration.

remove_change_listener(listener: pip_services3_commons.run.INotifiable.INotifiable)

Remove a previously added change listener.

Parameters

listener – a listener to be removed.

class pip_services3_components.config.YamlConfigReader(path: str = None)

Bases: pip_services3_components.config.FileConfigReader.FileConfigReader

Config reader that reads configuration from YAML file.

### Configuration parameters ###

  • path: path to configuration file

  • parameters: this entire section is used as template parameters

Example:

======== config.yml ======
key1: "{{KEY1_VALUE}}"
key2: "{{KEY2_VALUE}}"
===========================
configReader = YamlConfigReader("config.yml")
parameters = ConfigParams.from_tuples("KEY1_VALUE", 123, "KEY2_VALUE", "ABC")
configReader.read_config_("123", parameters)
static read_config(correlation_id: Optional[str], path: str, parameters: pip_services3_commons.config.ConfigParams.ConfigParams)pip_services3_commons.config.ConfigParams.ConfigParams

Reads configuration from a file, parameterize it with given values and returns a new ConfigParams object.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • path – a path to configuration file.

  • parameters – values to parameters the configuration.

Returns

ConfigParams configuration.

read_config_(correlation_id: Optional[str], parameters: pip_services3_commons.config.ConfigParams.ConfigParams)pip_services3_commons.config.ConfigParams.ConfigParams

Reads configuration and parameterize it with given values.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • parameters – values to parameters the configuration or null to skip parameterization.

Returns

ConfigParams configuration.

static read_object(correlation_id: Optional[str], path: str, parameters: pip_services3_commons.config.ConfigParams.ConfigParams) → Any

Reads configuration file, parameterizes its content and converts it into YAML object.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • path – a path to configuration file.

  • parameters – values to parameters the configuration.

Returns

a YAML object with configuration.