@classmethod
def _set_config(cls, config_module):
    """Set configuration from Python's module.

        :param config_module: config module to be used for attributes assignment
        """
    cls.task_classes = config_module['task_classes']
    cls.edge_table = config_module['edge_table']
    cls.failures = config_module['failures']
    cls.nowait_nodes = config_module['nowait_nodes']
    cls.eager_failures = config_module['eager_failures']
    cls.flows = list(cls.edge_table.keys())
    cls.node_args_from_first = config_module['node_args_from_first']
    cls.async_result_cache = config_module['async_result_cache']
    cls.propagate_finished = config_module['propagate_finished']
    cls.propagate_node_args = config_module['propagate_node_args']
    cls.propagate_parent = config_module['propagate_parent']
    cls.propagate_compound_finished = config_module[
        'propagate_compound_finished']
    cls.output_schemas = config_module['output_schemas']
    cls.storage_mapping = config_module['storage2instance_mapping']
    cls.storage_task_name = config_module['storage_task_name']
    cls.task2storage_mapping = config_module['task2storage_mapping']
    cls.max_retry = config_module['max_retry']
    cls.retry_countdown = config_module['retry_countdown']
    cls.storage_readonly = config_module['storage_readonly']
    cls.storage2storage_cache = config_module['storage2storage_cache']
    cls.throttle_tasks = config_module['throttle_tasks']
    cls.throttle_flows = config_module['throttle_flows']
    cls.dispatcher_queues = config_module['dispatcher_queues']
    cls.task_queues = config_module['task_queues']
    cls.strategies = config_module['strategies']
    cls.selective_run_task = config_module['selective_run_task']
    cls.migration_dir = config_module['migration_dir']
    config_module['init'](cls)
