selinon.config module

All user configurations generated from YAML file.

class selinon.config.Config[source]

Bases: object

All user configurations generated from YAML file.

async_result_cache = {}
celery_app = None
dispatcher_queues = {}
eager_failures = None
edge_table = {}
flows = {}
classmethod get_starting_edges(*args, **kwargs)[source]

Wrap call for checking initialization.

classmethod get_task_instance(*args, **kwargs)[source]

Wrap call for checking initialization.

classmethod has_readonly_storage(*args, **kwargs)[source]

Wrap call for checking initialization.

classmethod has_readwrite_storage(*args, **kwargs)[source]

Wrap call for checking initialization.

classmethod has_storage(*args, **kwargs)[source]

Wrap call for checking initialization.

classmethod init(celery_app, nodes_definition_file, flow_definition_files, config_py=None, keep_config_py=False)[source]

Initialize Selinon configuration with Celery application.

Parameters:
  • celery_app – celery application to be used
  • nodes_definition_file – definition of system nodes - YAML configuration
  • flow_definition_files – list of flow definition files
  • config_py – a file that should be used for storing generated config.py
  • keep_config_py – do not remove config_py file after run
initialized = False
classmethod is_flow(*args, **kwargs)[source]

Wrap call for checking initialization.

classmethod is_task(*args, **kwargs)[source]

Wrap call for checking initialization.

max_retry = None
migration_dir = None
nowait_nodes = {}
output_schemas = None
propagate_compound_finished = {}
propagate_finished = {}
propagate_node_args = {}
propagate_parent = {}
retry_countdown = None
classmethod set_celery_app(celery_app)[source]

Set celery application that should be used.

Parameters:celery_app – celery app instance
classmethod set_config_dict(nodes_definition, flow_definitions)[source]

Set configuration using dictionaries, no files are written to filesystem.

Parameters:
  • nodes_definition (dict) – definition of nodes in the system
  • flow_definitions (list) – a list with flow defintions
classmethod set_config_py(config_code)[source]

Set dispatcher configuration by Python config file.

Parameters:config_code – configuration source code
classmethod set_config_yaml(nodes_definition_file, flow_definition_files, config_py=None, keep_config_py=False)[source]

Set dispatcher configuration by path to YAML configuration files.

Parameters:
  • nodes_definition_file – definition of system nodes - YAML configuration
  • flow_definition_files – list of flow definition files
  • config_py – a file that should be used for storing generated config.py
  • keep_config_py – do not remove config_py file after run
classmethod should_propagate_compound_finished(*args, **kwargs)[source]

Wrap call for checking initialization.

classmethod should_propagate_finished(*args, **kwargs)[source]

Wrap call for checking initialization.

classmethod should_propagate_node_args(*args, **kwargs)[source]

Wrap call for checking initialization.

classmethod should_propagate_parent(*args, **kwargs)[source]

Wrap call for checking initialization.

storage2storage_cache = {}
storage_mapping = {}
storage_readonly = {}
storage_task_name = {}
strategies = {}
task2storage_mapping = {}
task_classes = {}
task_queues = {}
classmethod trace_by_func(trace_func)[source]

Set tracing function for Dispatcher.

Parameters:trace_func – a function that should be used to trace dispatcher actions
classmethod trace_by_json()[source]

Trace directly JSON output.

classmethod trace_by_logging()[source]

Use Python’s logging for tracing.

classmethod trace_by_sentry(dsn=None)[source]

Use Sentry for tracing.

Parameters:dsn – DSN for sentry to be used (uses env variables if omitted, see Sentry docs)
selinon.config.requires_initialization(func)[source]

Check that method that requires config can access initialized configuration.