Coverage report: 98%

Files Functions Classes

coverage.py v7.14.0, created at 2026-06-28 13:34 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
src / mafw / active.py Active.__init__   100% 4 0 0   100% 0 0   100%
src / mafw / active.py Active.__set_name__   100% 5 0 0   50% 2 1   86%
src / mafw / active.py Active._init_callbacks   100% 3 0 0   100% 0 0   100%
src / mafw / active.py Active.__get__   75% 8 2 0   67% 6 2   71%
src / mafw / active.py Active.__set__   100% 7 0 0   67% 6 2   85%
src / mafw / active.py (no function)   100% 12 0 0   100% 0 0   100%
src / mafw / db / db_configurations.py (no function)   100% 5 0 0   100% 0 0   100%
src / mafw / db / db_connection.py build_connection_parameters   100% 15 0 0   100% 6 0   100%
src / mafw / db / db_connection.py _legacy_connection_parameters   100% 8 0 0   100% 6 0   100%
src / mafw / db / db_connection.py _apply_backend_parameters   100% 13 0 0   100% 10 0   100%
src / mafw / db / db_connection.py _apply_authentication   100% 17 0 0   100% 12 0   100%
src / mafw / db / db_connection.py _apply_env_authentication   100% 12 0 0   100% 8 0   100%
src / mafw / db / db_connection.py _apply_inline_authentication   100% 4 0 0   100% 4 0   100%
src / mafw / db / db_connection.py _apply_file_authentication   100% 10 0 0   100% 8 0   100%
src / mafw / db / db_connection.py (no function)   100% 17 0 0   100% 0 0   100%
src / mafw / db / db_filter.py _format_expected   67% 3 1 0   50% 2 1   60%
src / mafw / db / db_filter.py ParseError.__init__   100% 2 0 0   100% 0 0   100%
src / mafw / db / db_filter.py UnexpectedTokenError.__init__   100% 5 0 0   100% 0 0   100%
src / mafw / db / db_filter.py UnexpectedEndOfExpressionError.__init__   100% 4 0 0   100% 0 0   100%
src / mafw / db / db_filter.py MissingTokenError.__init__   100% 3 0 0   100% 0 0   100%
src / mafw / db / db_filter.py UnknownNameError.__init__   88% 8 1 0   50% 2 1   80%
src / mafw / db / db_filter.py _tokenize_with_positions   100% 13 0 0   100% 6 0   100%
src / mafw / db / db_filter.py tokenize   100% 2 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ExprParser.__init__   100% 4 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ExprParser.peek   100% 3 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ExprParser.accept   100% 5 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ExprParser._current_position   100% 3 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ExprParser.expect   100% 8 0 0   100% 4 0   100%
src / mafw / db / db_filter.py ExprParser.parse   100% 6 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ExprParser.parse_or   100% 5 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ExprParser.parse_and   100% 5 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ExprParser.parse_not   100% 4 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ExprParser.parse_atom   100% 17 0 0   100% 8 0   100%
src / mafw / db / db_filter.py ast_to_string   96% 25 1 0   93% 14 1   95%
src / mafw / db / db_filter.py ConditionNode.__init__   100% 9 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ConditionNode.to_expression   100% 56 0 0   100% 52 0   100%
src / mafw / db / db_filter.py ConditionalNode.__init__   100% 2 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ConditionalNode.to_expression   100% 1 0 0   100% 0 0   100%
src / mafw / db / db_filter.py LogicalNode.__init__   100% 2 0 0   100% 0 0   100%
src / mafw / db / db_filter.py LogicalNode.to_expression   100% 11 0 0   100% 6 0   100%
src / mafw / db / db_filter.py ConditionalFilterCondition.__init__   100% 10 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ConditionalFilterCondition.to_expression   100% 6 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ConditionalFilterCondition.__eq__   100% 3 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ModelFilter.__init__   100% 36 0 0   100% 22 0   100%
src / mafw / db / db_filter.py ModelFilter._auto_bind   100% 5 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ModelFilter._build_logical_node_from_ast   100% 17 0 0   100% 8 0   100%
src / mafw / db / db_filter.py ModelFilter._create_condition_node_from_value   100% 7 0 0   100% 6 0   100%
src / mafw / db / db_filter.py ModelFilter.bind   100% 6 0 2   100% 0 0   100%
src / mafw / db / db_filter.py ModelFilter.is_bound   100% 1 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ModelFilter.add_conditional   100% 13 0 0   100% 6 0   100%
src / mafw / db / db_filter.py ModelFilter.add_conditional_from_dict   100% 2 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ModelFilter.from_conf   100% 7 0 0   100% 4 0   100%
src / mafw / db / db_filter.py ModelFilter._evaluate_logic_ast   100% 23 0 2   100% 10 0   100%
src / mafw / db / db_filter.py ModelFilter.filter   100% 20 0 2   100% 8 0   100%
src / mafw / db / db_filter.py ProcessorFilter.__init__   100% 3 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ProcessorFilter.new_only   100% 1 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ProcessorFilter.new_only   100% 1 0 0   100% 0 0   100%
src / mafw / db / db_filter.py ProcessorFilter.__setitem__   100% 3 0 0   100% 2 0   100%
src / mafw / db / db_filter.py ProcessorFilter.bind_all   100% 8 0 0   90% 10 1   94%
src / mafw / db / db_filter.py ProcessorFilter.filter_all   100% 14 0 0   100% 4 0   100%
src / mafw / db / db_filter.py ProcessorFilter.filter_all.eval_ast   100% 21 0 0   100% 12 0   100%
src / mafw / db / db_filter.py (no function)   100% 94 0 0   100% 0 0   100%
src / mafw / db / db_model.py RegisteredMeta.__new__   100% 28 0 2   88% 16 2   95%
src / mafw / db / db_model.py get_db   100% 4 0 0   100% 2 0   100%
src / mafw / db / db_model.py get_primary_key_fields   100% 4 0 0   100% 2 0   100%
src / mafw / db / db_model.py make_prefixed_suffixed_name   100% 11 0 2   100% 8 0   100%
src / mafw / db / db_model.py MAFwBaseModel.get_fields_by_type   100% 1 0 2   100% 0 0   100%
src / mafw / db / db_model.py MAFwBaseModel.file_removal_triggers   100% 15 0 2   100% 2 0   100%
src / mafw / db / db_model.py MAFwBaseModel.triggers   100% 1 0 0   100% 0 0   100%
src / mafw / db / db_model.py MAFwBaseModel.create_table   100% 24 0 0   100% 8 0   100%
src / mafw / db / db_model.py MAFwBaseModel.std_upsert   91% 22 2 0   80% 10 2   88%
src / mafw / db / db_model.py MAFwBaseModel.std_upsert_many   100% 34 0 0   85% 20 3   94%
src / mafw / db / db_model.py MAFwBaseModel.std_upsert_many._mysql_value_expression   100% 1 0 0   100% 0 0   100%
src / mafw / db / db_model.py MAFwBaseModel.to_dict   100% 1 0 0   100% 0 0   100%
src / mafw / db / db_model.py MAFwBaseModel.from_dict   100% 1 0 0   100% 0 0   100%
src / mafw / db / db_model.py MAFwBaseModel.update_from_dict   100% 2 0 0   100% 0 0   100%
src / mafw / db / db_model.py MAFwBaseModel.join_dependent_models   100% 14 0 2   100% 10 0   100%
src / mafw / db / db_model.py (no function)   100% 60 0 0   100% 0 0   100%
src / mafw / db / db_wizard.py UnknownField.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / db / db_wizard.py dump_models   100% 9 0 0   100% 6 0   100%
src / mafw / db / db_wizard.py dump_models.dump_intro   100% 4 0 0   100% 2 0   100%
src / mafw / db / db_wizard.py dump_models.dump_table   100% 45 0 0   100% 28 0   100%
src / mafw / db / db_wizard.py (no function)   100% 10 0 0   100% 0 0   100%
src / mafw / db / fields.py FileNameFieldAccessor.__set__   100% 7 0 0   100% 6 0   100%
src / mafw / db / fields.py FileChecksumFieldAccessor.__set__   100% 4 0 0   100% 2 0   100%
src / mafw / db / fields.py FileNameField.__init__   100% 2 0 0   100% 0 0   100%
src / mafw / db / fields.py FileNameField.db_value   100% 1 0 0   100% 0 0   100%
src / mafw / db / fields.py FileNameField.python_value   100% 1 0 0   100% 0 0   100%
src / mafw / db / fields.py FileNameListField.db_value   100% 3 0 0   100% 2 0   100%
src / mafw / db / fields.py FileNameListField.python_value   67% 3 1 0   50% 2 1   60%
src / mafw / db / fields.py FileChecksumField.db_value   100% 8 0 0   100% 6 0   100%
src / mafw / db / fields.py FileChecksumField.python_value   100% 1 0 0   100% 0 0   100%
src / mafw / db / fields.py (no function)   100% 22 0 0   100% 0 0   100%
src / mafw / db / model_register.py ModelRegister.__init__   100% 5 0 0   100% 0 0   100%
src / mafw / db / model_register.py ModelRegister.register_model   100% 5 0 0   100% 2 0   100%
src / mafw / db / model_register.py ModelRegister.register_prefix   100% 3 0 0   100% 2 0   100%
src / mafw / db / model_register.py ModelRegister.register_suffix   100% 3 0 0   100% 2 0   100%
src / mafw / db / model_register.py ModelRegister.get_model   100% 29 0 0   100% 14 0   100%
src / mafw / db / model_register.py ModelRegister.get_model_names   100% 2 0 0   100% 0 0   100%
src / mafw / db / model_register.py ModelRegister.get_table_names   100% 2 0 0   100% 0 0   100%
src / mafw / db / model_register.py ModelRegister.items   100% 2 0 0   100% 0 0   100%
src / mafw / db / model_register.py ModelRegister.get_standard_tables   100% 2 0 0   100% 0 0   100%
src / mafw / db / model_register.py ModelRegister.clear   100% 4 0 0   100% 0 0   100%
src / mafw / db / model_register.py (no function)   100% 17 0 2   100% 0 0   100%
src / mafw / db / std_tables.py StandardTable.init   0% 1 1 0   100% 0 0   0%
src / mafw / db / std_tables.py TriggerStatus.init   78% 9 2 0   50% 4 2   69%
src / mafw / db / std_tables.py TriggerDisabler.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / db / std_tables.py TriggerDisabler.disable   100% 1 0 0   100% 0 0   100%
src / mafw / db / std_tables.py TriggerDisabler.enable   100% 1 0 0   100% 0 0   100%
src / mafw / db / std_tables.py TriggerDisabler.__enter__   100% 2 0 0   100% 0 0   100%
src / mafw / db / std_tables.py TriggerDisabler.__exit__   100% 1 0 0   100% 0 0   100%
src / mafw / db / std_tables.py (no function)   100% 40 0 0   100% 0 0   100%
src / mafw / db / trigger.py and_   100% 2 0 0   100% 0 0   100%
src / mafw / db / trigger.py or_   100% 2 0 0   100% 0 0   100%
src / mafw / db / trigger.py SQLiteDialect.create_trigger_sql   100% 7 0 0   100% 0 0   100%
src / mafw / db / trigger.py SQLiteDialect.drop_trigger_sql   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py SQLiteDialect.select_all_trigger_sql   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py SQLiteDialect.supports_trigger_type   100% 3 0 0   100% 2 0   100%
src / mafw / db / trigger.py SQLiteDialect.supports_safe_create   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py SQLiteDialect.supports_update_of_columns   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py SQLiteDialect.supports_when_clause   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py MySQLDialect.create_trigger_sql   100% 14 0 0   100% 4 0   100%
src / mafw / db / trigger.py MySQLDialect.select_all_trigger_sql   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py MySQLDialect.drop_trigger_sql   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py MySQLDialect.supports_trigger_type   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py MySQLDialect.supports_safe_create   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py MySQLDialect.supports_update_of_columns   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py MySQLDialect.supports_when_clause   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py PostgreSQLDialect.create_trigger_sql   96% 27 1 0   92% 12 1   95%
src / mafw / db / trigger.py PostgreSQLDialect._clean_sql   100% 8 0 0   100% 4 0   100%
src / mafw / db / trigger.py PostgreSQLDialect.drop_trigger_sql   100% 4 0 0   100% 2 0   100%
src / mafw / db / trigger.py PostgreSQLDialect.select_all_trigger_sql   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py PostgreSQLDialect.supports_trigger_type   100% 3 0 0   100% 2 0   100%
src / mafw / db / trigger.py PostgreSQLDialect.supports_safe_create   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py PostgreSQLDialect.supports_update_of_columns   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py PostgreSQLDialect.supports_when_clause   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py Trigger.__init__   100% 18 0 0   100% 4 0   100%
src / mafw / db / trigger.py Trigger.trigger_action   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py Trigger.trigger_action   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py Trigger.trigger_when   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py Trigger.trigger_when   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py Trigger.__setattr__   100% 5 0 0   100% 4 0   100%
src / mafw / db / trigger.py Trigger.__getattr__   100% 5 0 0   100% 4 0   100%
src / mafw / db / trigger.py Trigger.add_sql   100% 2 0 0   100% 0 0   100%
src / mafw / db / trigger.py Trigger.add_when   100% 3 0 0   100% 2 0   100%
src / mafw / db / trigger.py Trigger._node_to_sql   100% 23 0 0   100% 12 0   100%
src / mafw / db / trigger.py Trigger._value_to_sql   100% 10 0 0   100% 8 0   100%
src / mafw / db / trigger.py Trigger.set_database   100% 2 0 0   100% 0 0   100%
src / mafw / db / trigger.py Trigger.database   100% 4 0 0   100% 2 0   100%
src / mafw / db / trigger.py Trigger._compile_query   50% 8 4 0   25% 4 1   42%
src / mafw / db / trigger.py Trigger._compile_node   100% 1 0 0   100% 0 0   100%
src / mafw / db / trigger.py Trigger._compile_sql_statement   100% 7 0 0   100% 4 0   100%
src / mafw / db / trigger.py Trigger._compile_when_conditions   100% 6 0 0   100% 4 0   100%
src / mafw / db / trigger.py Trigger._get_dialect   100% 15 0 0   100% 12 0   100%
src / mafw / db / trigger.py Trigger.create   100% 10 0 0   100% 8 0   100%
src / mafw / db / trigger.py Trigger.drop   100% 2 0 0   100% 0 0   100%
src / mafw / db / trigger.py (no function)   100% 84 0 0   100% 0 0   100%
src / mafw / decorators.py suppress_warnings   100% 3 0 0   100% 0 0   100%
src / mafw / decorators.py suppress_warnings.wrapper   100% 3 0 0   100% 0 0   100%
src / mafw / decorators.py singleton   100% 4 0 0   100% 0 0   100%
src / mafw / decorators.py singleton.wrapper_singleton   100% 3 0 0   100% 2 0   100%
src / mafw / decorators.py database_required   100% 7 0 0   50% 2 1   89%
src / mafw / decorators.py database_required._start   100% 3 0 0   100% 2 0   100%
src / mafw / decorators.py orphan_protector   100% 5 0 0   100% 0 0   100%
src / mafw / decorators.py orphan_protector.new_init   100% 1 0 0   100% 0 0   100%
src / mafw / decorators.py execution_workflow   100% 2 0 0   100% 0 0   100%
src / mafw / decorators.py execution_workflow.dec   100% 5 0 0   100% 0 0   100%
src / mafw / decorators.py execution_workflow.dec.new_init   100% 1 0 0   100% 0 0   100%
src / mafw / decorators.py depends_on_optional   100% 3 0 0   100% 0 0   100%
src / mafw / decorators.py depends_on_optional.decorator   100% 2 0 0   100% 0 0   100%
src / mafw / decorators.py depends_on_optional.decorator.wrapper   100% 9 0 0   100% 6 0   100%
src / mafw / decorators.py processor_depends_on_optional   100% 2 0 0   100% 0 0   100%
src / mafw / decorators.py processor_depends_on_optional.decorator   100% 13 0 0   100% 6 0   100%
src / mafw / decorators.py processor_depends_on_optional.decorator.class_wrapper   100% 6 0 0   100% 0 0   100%
src / mafw / decorators.py class_depends_on_optional   100% 2 0 0   100% 0 0   100%
src / mafw / decorators.py class_depends_on_optional.decorator   100% 13 0 0   100% 6 0   100%
src / mafw / decorators.py class_depends_on_optional.decorator.class_wrapper   100% 6 0 0   100% 0 0   100%
src / mafw / decorators.py (no function)   100% 34 0 0   100% 0 0   100%
src / mafw / devtools / __init__.py _read_devtools_deps   100% 22 0 0   100% 8 0   100%
src / mafw / devtools / __init__.py ensure_devtools_available   100% 16 0 0   100% 6 0   100%
src / mafw / devtools / __init__.py (no function)   100% 6 0 0   100% 0 0   100%
src / mafw / devtools / cli / __init__.py (no function)   100% 1 0 0   100% 0 0   100%
src / mafw / devtools / cli / cli.py (no function)   100% 19 0 2   100% 0 0   100%
src / mafw / devtools / cli / completion.py completion   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / cli / completion.py completion_install   100% 9 0 0   100% 2 0   100%
src / mafw / devtools / cli / completion.py completion_uninstall   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / cli / completion.py completion_show   100% 4 0 0   100% 0 0   100%
src / mafw / devtools / cli / completion.py (no function)   100% 19 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / __init__.py (no function)   100% 18 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / audit.py audit   100% 57 0 0   95% 40 2   98%
src / mafw / devtools / cli / dependencies / audit.py (no function)   100% 13 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / freeze.py freeze   100% 9 0 0   100% 4 0   100%
src / mafw / devtools / cli / dependencies / freeze.py unfreeze   100% 6 0 0   100% 4 0   100%
src / mafw / devtools / cli / dependencies / freeze.py (no function)   100% 10 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / latest.py _normalize_mafw_version_option   100% 6 0 0   100% 2 0   100%
src / mafw / devtools / cli / dependencies / latest.py _upload_pylock_reference   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / latest.py _download_pylock_reference   100% 6 0 0   100% 4 0   100%
src / mafw / devtools / cli / dependencies / latest.py check   100% 61 0 0   97% 38 1   99%
src / mafw / devtools / cli / dependencies / latest.py compare   92% 48 4 8   75% 20 3   87%
src / mafw / devtools / cli / dependencies / latest.py (no function)   100% 46 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / oldest.py check   100% 36 0 0   93% 14 1   98%
src / mafw / devtools / cli / dependencies / oldest.py (no function)   100% 19 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / registry.py _registry_api_config   100% 5 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / registry.py _normalize_pylock_input   100% 4 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / registry.py _normalize_mafw_version_option   100% 6 0 0   100% 2 0   100%
src / mafw / devtools / cli / dependencies / registry.py registry   100% 4 0 0   100% 0 0   100%
src / mafw / devtools / cli / dependencies / registry.py (no function)   100% 23 0 79   100% 0 0   100%
src / mafw / devtools / cli / documentation / __init__.py (no function)   100% 20 0 0   100% 0 0   100%
src / mafw / devtools / cli / documentation / build.py _coerce_with_zip_file   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / cli / documentation / build.py _coerce_with_upload_zip   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / cli / documentation / build.py build_current_only   95% 57 3 41   82% 22 4   91%
src / mafw / devtools / cli / documentation / build.py redirects   100% 24 0 0   100% 4 0   100%
src / mafw / devtools / cli / documentation / build.py landing   100% 4 0 0   100% 0 0   100%
src / mafw / devtools / cli / documentation / build.py requirements   97% 37 1 0   83% 24 4   92%
src / mafw / devtools / cli / documentation / build.py (no function)   100% 37 0 89   100% 0 0   100%
src / mafw / devtools / cli / documentation / prune.py prune   100% 26 0 0   90% 10 1   97%
src / mafw / devtools / cli / documentation / prune.py clean   90% 20 2 0   100% 8 0   93%
src / mafw / devtools / cli / documentation / prune.py (no function)   100% 15 0 0   100% 0 0   100%
src / mafw / devtools / cli / documentation / registry.py registry   100% 4 0 0   100% 0 0   100%
src / mafw / devtools / cli / documentation / registry.py _registry_build_api_config   100% 5 0 0   100% 0 0   100%
src / mafw / devtools / cli / documentation / registry.py _registry_validate_selection   100% 9 0 0   100% 8 0   100%
src / mafw / devtools / cli / documentation / registry.py (no function)   100% 17 0 55   100% 0 0   100%
src / mafw / devtools / cli / documentation / server.py server_start   100% 1 0 0   100% 0 0   100%
src / mafw / devtools / cli / documentation / server.py server_status   83% 12 2 0   100% 2 0   86%
src / mafw / devtools / cli / documentation / server.py server_stop   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / cli / documentation / server.py server_restart   100% 12 0 0   100% 2 0   100%
src / mafw / devtools / cli / documentation / server.py (no function)   100% 20 0 0   100% 0 0   100%
src / mafw / devtools / cli / release / __init__.py (no function)   100% 9 0 0   100% 0 0   100%
src / mafw / devtools / cli / release / create.py create   100% 44 0 0   93% 14 1   98%
src / mafw / devtools / cli / release / create.py (no function)   100% 18 0 0   100% 0 0   100%
src / mafw / devtools / dependencies / __init__.py (no function)   100% 12 0 0   100% 2 0   100%
src / mafw / devtools / dependencies / audit.py run_pip_audit   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / dependencies / audit.py (no function)   100% 6 0 0   100% 0 0   100%
src / mafw / devtools / dependencies / compare.py VersionComparisonResult.has_changes   100% 1 0 0   100% 0 0   100%
src / mafw / devtools / dependencies / compare.py compare_packages   100% 15 0 0   100% 8 0   100%
src / mafw / devtools / dependencies / compare.py render_comparison_json   100% 9 0 0   100% 4 0   100%
src / mafw / devtools / dependencies / compare.py render_comparison_markdown   100% 39 0 0   100% 16 0   100%
src / mafw / devtools / dependencies / compare.py render_comparison_rich   100% 36 0 0   100% 18 0   100%
src / mafw / devtools / dependencies / compare.py resolve_output_format   100% 13 0 0   100% 10 0   100%
src / mafw / devtools / dependencies / compare.py (no function)   100% 29 0 0   100% 0 0   100%
src / mafw / devtools / dependencies / compile.py load_pylock_packages   100% 7 0 0   100% 2 0   100%
src / mafw / devtools / dependencies / compile.py parse_python_version   75% 4 1 0   50% 2 1   67%
src / mafw / devtools / dependencies / compile.py python_versions_between   81% 16 3 0   70% 10 3   77%
src / mafw / devtools / dependencies / compile.py ensure_mafw_project_root   100% 11 0 0   100% 4 0   100%
src / mafw / devtools / dependencies / compile.py project_python_versions_from_doc   100% 21 0 0   100% 12 0   100%
src / mafw / devtools / dependencies / compile.py project_python_versions   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / dependencies / compile.py compile_python_selector   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / dependencies / compile.py read_compiled_dependency_versions   89% 18 2 2   62% 8 3   81%
src / mafw / devtools / dependencies / compile.py load_pyproject_doc   100% 4 0 0   100% 0 0   100%
src / mafw / devtools / dependencies / compile.py (no function)   100% 26 0 9   100% 0 0   100%
src / mafw / devtools / dependencies / freeze.py compute_upper_bound   100% 5 0 2   100% 2 0   100%
src / mafw / devtools / dependencies / freeze.py format_requirement   91% 11 1 0   83% 6 1   88%
src / mafw / devtools / dependencies / freeze.py iter_specifiers   100% 1 0 0   100% 0 0   100%
src / mafw / devtools / dependencies / freeze.py has_frozen_upper_bound   100% 1 0 0   100% 0 0   100%
src / mafw / devtools / dependencies / freeze.py highest_lower_bound   100% 9 0 2   83% 6 1   93%
src / mafw / devtools / dependencies / freeze.py freeze_requirement   86% 21 3 0   88% 8 1   86%
src / mafw / devtools / dependencies / freeze.py unfreeze_requirement   76% 29 7 0   69% 16 5   73%
src / mafw / devtools / dependencies / freeze.py update_dependency_list   71% 7 2 0   75% 4 1   73%
src / mafw / devtools / dependencies / freeze.py freeze_pyproject_toml   93% 15 1 0   80% 10 2   88%
src / mafw / devtools / dependencies / freeze.py freeze_pyproject_toml.freeze_for_requirement   80% 10 2 0   75% 4 1   79%
src / mafw / devtools / dependencies / freeze.py unfreeze_pyproject_toml   86% 29 4 0   68% 22 5   78%
src / mafw / devtools / dependencies / freeze.py summarize_freeze_changes   40% 5 3 0   50% 2 1   43%
src / mafw / devtools / dependencies / freeze.py (no function)   100% 26 0 3   100% 0 0   100%
src / mafw / devtools / dependencies / verify.py get_expected_lower_bounds   95% 21 1 0   90% 10 1   94%
src / mafw / devtools / dependencies / verify.py verify_lowest_resolution   92% 25 2 0   83% 12 2   89%
src / mafw / devtools / dependencies / verify.py (no function)   100% 15 0 0   100% 0 0   100%
src / mafw / devtools / documentation / __init__.py (no function)   100% 13 0 0   100% 2 0   100%
src / mafw / devtools / documentation / builder.py run   0% 1 1 0   100% 0 0   0%
src / mafw / devtools / documentation / builder.py find_repo_root   100% 7 0 0   100% 4 0   100%
src / mafw / devtools / documentation / builder.py filter_latest_micro   100% 6 0 0   75% 4 1   90%
src / mafw / devtools / documentation / builder.py filter_stable_tags   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / documentation / builder.py parse_version_tuple   100% 9 0 0   100% 6 0   100%
src / mafw / devtools / documentation / builder.py copy_patch_files   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / documentation / builder.py parse_sphinx_log   100% 16 0 0   100% 6 0   100%
src / mafw / devtools / documentation / builder.py report_build_status   80% 15 3 0   50% 10 3   68%
src / mafw / devtools / documentation / builder.py ensure_sphinx_build_available   100% 3 0 0   100% 2 0   100%
src / mafw / devtools / documentation / builder.py check_multiversion_structure   100% 7 0 0   100% 6 0   100%
src / mafw / devtools / documentation / builder.py parse_mafw_docs_zip_filename   100% 6 0 0   100% 2 0   100%
src / mafw / devtools / documentation / builder.py normalize_registry_item   100% 12 0 0   100% 4 0   100%
src / mafw / devtools / documentation / builder.py iter_local_mafw_docs_zips   100% 14 0 0   100% 8 0   100%
src / mafw / devtools / documentation / builder.py filter_versions_in_range   100% 18 0 0   100% 16 0   100%
src / mafw / devtools / documentation / builder.py (no function)   100% 33 0 11   100% 0 0   100%
src / mafw / devtools / documentation / requirements.py generate_requirements_rst   93% 59 4 0   82% 28 5   90%
src / mafw / devtools / documentation / requirements.py generate_requirements_rst.sort_key   80% 5 1 0   75% 4 1   78%
src / mafw / devtools / documentation / requirements.py _load_supported_python_versions   96% 24 1 0   93% 14 1   95%
src / mafw / devtools / documentation / requirements.py generate_python_versions_rst   88% 17 2 0   75% 8 2   84%
src / mafw / devtools / documentation / requirements.py (no function)   100% 14 0 0   100% 0 0   100%
src / mafw / devtools / documentation / server.py server_default_directory   100% 1 0 0   100% 0 0   100%
src / mafw / devtools / documentation / server.py server_metadata_path   100% 1 0 0   100% 0 0   100%
src / mafw / devtools / documentation / server.py read_server_metadata   75% 8 2 0   100% 2 0   80%
src / mafw / devtools / documentation / server.py write_server_metadata   60% 5 2 0   100% 0 0   60%
src / mafw / devtools / documentation / server.py process_matches_http_server   70% 20 6 0   67% 12 4   69%
src / mafw / devtools / documentation / server.py http_probe   0% 6 6 0   100% 0 0   0%
src / mafw / devtools / documentation / server.py format_started_at_utc   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / documentation / server.py get_server_status   100% 20 0 0   100% 10 0   100%
src / mafw / devtools / documentation / server.py server_stop_by_metadata   83% 47 8 0   100% 10 0   86%
src / mafw / devtools / documentation / server.py server_start_impl   100% 18 0 0   100% 6 0   100%
src / mafw / devtools / documentation / server.py (no function)   100% 31 0 0   100% 0 0   100%
src / mafw / devtools / documentation / versions.py write_versions_json   100% 10 0 0   100% 4 0   100%
src / mafw / devtools / documentation / versions.py mirror_version   100% 12 0 0   100% 6 0   100%
src / mafw / devtools / documentation / versions.py write_redirect_page   100% 7 0 0   100% 0 0   100%
src / mafw / devtools / documentation / versions.py write_legacy_redirect_page   100% 5 0 0   100% 0 0   100%
src / mafw / devtools / documentation / versions.py write_redirects_file   100% 6 0 0   100% 0 0   100%
src / mafw / devtools / documentation / versions.py write_root_landing_page   100% 6 0 0   100% 0 0   100%
src / mafw / devtools / documentation / versions.py get_directory_size   100% 5 0 0   100% 4 0   100%
src / mafw / devtools / documentation / versions.py format_size   100% 5 0 0   100% 4 0   100%
src / mafw / devtools / documentation / versions.py prune_old_versions   97% 35 1 0   94% 18 1   96%
src / mafw / devtools / documentation / versions.py regenerate_versions_json_after_pruning   100% 15 0 0   100% 4 0   100%
src / mafw / devtools / documentation / versions.py ensure_versions_json_exists   100% 14 0 0   75% 8 2   91%
src / mafw / devtools / documentation / versions.py (no function)   100% 17 0 0   100% 0 0   100%
src / mafw / devtools / git.py check_main_branch   100% 3 0 0   100% 2 0   100%
src / mafw / devtools / git.py ensure_clean_git   100% 3 0 0   100% 2 0   100%
src / mafw / devtools / git.py get_last_stable_tag   100% 8 0 0   83% 6 1   93%
src / mafw / devtools / git.py prevent_duplicate_tag   100% 3 0 0   100% 2 0   100%
src / mafw / devtools / git.py commit_changes   100% 11 0 0   100% 4 0   100%
src / mafw / devtools / git.py create_tag   100% 4 0 0   100% 0 0   100%
src / mafw / devtools / git.py push_changes   100% 3 0 0   100% 0 0   100%
src / mafw / devtools / git.py commit_dependency_unfreeze   100% 7 0 0   100% 2 0   100%
src / mafw / devtools / git.py get_git_tags   100% 15 0 0   100% 6 0   100%
src / mafw / devtools / git.py get_current_branch   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / git.py sort_tags_semver   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / git.py git_rev_of   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / git.py is_ancestor   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / git.py (no function)   100% 27 0 0   100% 0 0   100%
src / mafw / devtools / gitlab / __init__.py (no function)   100% 8 0 0   100% 2 0   100%
src / mafw / devtools / gitlab / api.py build_gitlab_api_configuration   100% 17 0 0   100% 14 0   100%
src / mafw / devtools / gitlab / api.py build_gitlab_auth_headers   100% 3 0 0   100% 2 0   100%
src / mafw / devtools / gitlab / api.py (no function)   100% 13 0 0   100% 0 0   100%
src / mafw / devtools / gitlab / docs_registry.py list_mafw_docs_generic_packages   100% 25 0 0   100% 12 0   100%
src / mafw / devtools / gitlab / docs_registry.py resolve_mafw_docs_package_ids_by_version   100% 8 0 0   75% 4 1   92%
src / mafw / devtools / gitlab / docs_registry.py upload_docs_zip_to_gitlab_generic_registry   100% 22 0 0   100% 8 0   100%
src / mafw / devtools / gitlab / docs_registry.py download_docs_zip_from_gitlab_generic_registry   90% 30 3 6   90% 10 1   90%
src / mafw / devtools / gitlab / docs_registry.py (no function)   100% 9 0 0   100% 0 0   100%
src / mafw / devtools / gitlab / registry.py parse_pylock_reference_filename   100% 6 0 0   100% 2 0   100%
src / mafw / devtools / gitlab / registry.py normalize_dependency_registry_item   100% 12 0 0   100% 4 0   100%
src / mafw / devtools / gitlab / registry.py normalize_mafw_version   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / gitlab / registry.py iter_local_pylock_reference_files   100% 14 0 0   100% 8 0   100%
src / mafw / devtools / gitlab / registry.py list_generic_packages   100% 19 0 0   100% 10 0   100%
src / mafw / devtools / gitlab / registry.py resolve_package_ids_by_version   100% 7 0 0   100% 4 0   100%
src / mafw / devtools / gitlab / registry.py _infer_content_type   100% 1 0 0   100% 0 0   100%
src / mafw / devtools / gitlab / registry.py upload_generic_file   100% 24 0 0   100% 14 0   100%
src / mafw / devtools / gitlab / registry.py download_generic_file   100% 20 0 0   100% 10 0   100%
src / mafw / devtools / gitlab / registry.py delete_generic_package_version   100% 8 0 0   100% 4 0   100%
src / mafw / devtools / gitlab / registry.py list_generic_package_files   94% 17 1 0   83% 6 1   91%
src / mafw / devtools / gitlab / registry.py delete_generic_package_file   100% 8 0 0   100% 4 0   100%
src / mafw / devtools / gitlab / registry.py (no function)   100% 27 0 0   100% 0 0   100%
src / mafw / devtools / release / __init__.py (no function)   100% 12 0 0   100% 2 0   100%
src / mafw / devtools / release / changelog.py generate_changelog   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / release / changelog.py extract_version_changelog_block   100% 8 0 0   100% 4 0   100%
src / mafw / devtools / release / changelog.py _classify_changelog_subsection   100% 12 0 0   100% 10 0   100%
src / mafw / devtools / release / changelog.py extract_change_sections_from_changelog_block   92% 13 1 0   67% 6 2   84%
src / mafw / devtools / release / changelog.py extract_change_sections_from_changelog   100% 5 0 0   100% 2 0   100%
src / mafw / devtools / release / changelog.py (no function)   100% 15 0 0   100% 0 0   100%
src / mafw / devtools / release / checks.py parse_stable_tag   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / release / checks.py check_missing_release   100% 12 0 0   100% 6 0   100%
src / mafw / devtools / release / checks.py (no function)   100% 6 0 0   100% 0 0   100%
src / mafw / devtools / release / notes.py get_release_note_base_ref   100% 7 0 0   100% 4 0   100%
src / mafw / devtools / release / notes.py get_release_statistics   100% 3 0 0   100% 0 0   100%
src / mafw / devtools / release / notes.py get_contributors   100% 7 0 0   100% 4 0   100%
src / mafw / devtools / release / notes.py render_release_note_section   100% 9 0 0   100% 4 0   100%
src / mafw / devtools / release / notes.py create_release_note   100% 24 0 0   100% 4 0   100%
src / mafw / devtools / release / notes.py (no function)   100% 14 0 0   100% 0 0   100%
src / mafw / devtools / release / versioning.py parse_version   100% 5 0 0   100% 2 0   100%
src / mafw / devtools / release / versioning.py read_current_version   0% 4 4 0   0% 2 0   0%
src / mafw / devtools / release / versioning.py normalize_hatch_segments   100% 15 0 0   100% 10 0   100%
src / mafw / devtools / release / versioning.py classify_version   92% 13 1 0   90% 10 1   91%
src / mafw / devtools / release / versioning.py DocTargetVersionPrompt.__init__   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / release / versioning.py DocTargetVersionPrompt.process_response   100% 9 0 0   100% 6 0   100%
src / mafw / devtools / release / versioning.py _parse_major_minor   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / release / versioning.py validate_doc_target_version   100% 4 0 0   100% 2 0   100%
src / mafw / devtools / release / versioning.py next_minor_version   100% 2 0 0   100% 0 0   100%
src / mafw / devtools / release / versioning.py compute_doc_target_version   100% 6 0 0   100% 4 0   100%
src / mafw / devtools / release / versioning.py update_doc_target_version   89% 9 1 0   75% 4 1   85%
src / mafw / devtools / release / versioning.py bump_version   92% 13 1 0   83% 6 1   89%
src / mafw / devtools / release / versioning.py update_notice_version   75% 12 3 0   67% 6 2   72%
src / mafw / devtools / release / versioning.py (no function)   100% 41 0 0   100% 0 0   100%
src / mafw / enumerators.py (no function)   100% 54 0 0   100% 0 0   100%
src / mafw / hookspecs.py (no function)   100% 9 0 2   100% 0 0   100%
src / mafw / lazy_import.py ProcessorClassProtocol.parameter_schema   0% 1 1 0   100% 0 0   0%
src / mafw / lazy_import.py ProcessorClassProtocol.filter_schema   0% 1 1 0   100% 0 0   0%
src / mafw / lazy_import.py ProcessorClassProtocol.processor_schema   0% 1 1 0   100% 0 0   0%
src / mafw / lazy_import.py LazyImportPlugin.__init__   100% 6 0 0   100% 0 0   100%
src / mafw / lazy_import.py LazyImportPlugin._load   100% 6 0 0   100% 2 0   100%
src / mafw / lazy_import.py LazyImportPlugin.__getattr__   100% 1 0 0   100% 0 0   100%
src / mafw / lazy_import.py LazyImportPlugin.__call__   100% 2 0 0   100% 0 0   100%
src / mafw / lazy_import.py LazyImportProcessor._post_load   100% 1 0 0   100% 0 0   100%
src / mafw / lazy_import.py LazyImportProcessor.__repr__   100% 1 0 0   100% 0 0   100%
src / mafw / lazy_import.py LazyImportUserInterface.__init__   100% 2 0 0   100% 0 0   100%
src / mafw / lazy_import.py LazyImportUserInterface._post_load   100% 3 0 0   100% 2 0   100%
src / mafw / lazy_import.py LazyImportUserInterface.__repr__   100% 1 0 0   100% 0 0   100%
src / mafw / lazy_import.py (no function)   100% 44 0 0   100% 0 0   100%
src / mafw / mafw_errors.py ValidationIssue.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / mafw_errors.py MissingProcessorsToRunIssue.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / mafw_errors.py ProcessorsToRunNotListIssue.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / mafw_errors.py MissingUserInterfaceSectionIssue.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / mafw_errors.py UnknownProcessorsToRunEntryIssue.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / mafw_errors.py UnknownGroupMemberIssue.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / mafw_errors.py DuplicateReplicaIssue.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / mafw_errors.py CyclicGroupIssue.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / mafw_errors.py InvalidFilterConditionIssue.__init__   100% 7 0 0   75% 4 1   91%
src / mafw / mafw_errors.py InvalidFilterLogicIssue.__init__   100% 4 0 0   50% 2 1   83%
src / mafw / mafw_errors.py (no function)   100% 53 0 0   100% 0 0   100%
src / mafw / models / __init__.py (no function)   100% 5 0 0   100% 0 0   100%
src / mafw / models / filter_schema.py (no function)   100% 8 0 0   100% 0 0   100%
src / mafw / models / loop_payloads.py (no function)   100% 26 0 0   100% 0 0   100%
src / mafw / models / parameter_schema.py (no function)   100% 12 0 0   100% 0 0   100%
src / mafw / models / processor_schema.py ProcessorSchema.get_parameter_names   100% 1 0 0   100% 0 0   100%
src / mafw / models / processor_schema.py ProcessorSchema.get_parameter   100% 4 0 0   100% 4 0   100%
src / mafw / models / processor_schema.py (no function)   100% 12 0 0   100% 0 0   100%
src / mafw / plugin_manager.py _as_processor_result   100% 1 0 0   100% 0 0   100%
src / mafw / plugin_manager.py _as_ui_result   100% 1 0 0   100% 0 0   100%
src / mafw / plugin_manager.py _as_db_module_result   100% 1 0 0   100% 0 0   100%
src / mafw / plugin_manager.py MAFwPluginManager.__init__   100% 2 0 0   100% 0 0   100%
src / mafw / plugin_manager.py MAFwPluginManager.load_db_models_plugins   100% 6 0 0   100% 2 0   100%
src / mafw / plugin_manager.py MAFwPluginManager.load_processor_plugins   100% 10 0 0   100% 4 0   100%
src / mafw / plugin_manager.py MAFwPluginManager.load_user_interface_plugins   100% 5 0 0   100% 0 0   100%
src / mafw / plugin_manager.py MAFwPluginManager._delayed_status_message   100% 3 0 0   100% 2 0   100%
src / mafw / plugin_manager.py MAFwPluginManager.load_plugins   100% 30 0 0   100% 16 0   100%
src / mafw / plugin_manager.py get_plugin_manager   100% 9 0 0   100% 4 0   100%
src / mafw / plugin_manager.py (no function)   100% 40 0 2   100% 0 0   100%
src / mafw / plugins.py register_processors   100% 1 0 0   100% 0 0   100%
src / mafw / plugins.py register_user_interfaces   100% 1 0 0   100% 0 0   100%
src / mafw / plugins.py register_db_model_modules   100% 1 0 0   100% 0 0   100%
src / mafw / plugins.py (no function)   100% 9 0 0   100% 0 0   100%
src / mafw / processor.py validate_database_conf   100% 9 0 0   100% 6 0   100%
src / mafw / processor.py PassiveParameter.__init__   100% 13 0 0   100% 6 0   100%
src / mafw / processor.py PassiveParameter.__rich_repr__   100% 3 0 0   100% 0 0   100%
src / mafw / processor.py PassiveParameter.is_set   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py PassiveParameter.value   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py PassiveParameter.value   100% 2 0 0   100% 0 0   100%
src / mafw / processor.py PassiveParameter.is_optional   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py PassiveParameter.__repr__   100% 3 0 0   100% 0 0   100%
src / mafw / processor.py ensure_parameter_registration   100% 3 0 0   100% 0 0   100%
src / mafw / processor.py ensure_parameter_registration.wrapper   100% 8 0 0   100% 6 0   100%
src / mafw / processor.py _copy_parent_parameter_definitions   100% 7 0 0   100% 6 0   100%
src / mafw / processor.py _ensure_parameter_definitions   100% 6 0 0   100% 2 0   100%
src / mafw / processor.py _validate_filter_schema   100% 15 0 0   100% 12 0   100%
src / mafw / processor.py ActiveParameter.__init__   100% 4 0 0   100% 0 0   100%
src / mafw / processor.py ActiveParameter._validate_name   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py ActiveParameter.__set_name__   100% 10 0 0   100% 4 0   100%
src / mafw / processor.py ActiveParameter.__get__   100% 4 0 0   100% 2 0   100%
src / mafw / processor.py ActiveParameter.__set__   100% 2 0 0   100% 0 0   100%
src / mafw / processor.py ActiveParameter.to_schema   100% 6 0 0   100% 0 0   100%
src / mafw / processor.py ActiveParameter._resolve_parameter_annotation   100% 20 0 0   100% 10 0   100%
src / mafw / processor.py ActiveParameter._schema_default_value   100% 7 0 0   100% 2 0   100%
src / mafw / processor.py ActiveParameter._is_list_annotation   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py ActiveParameter._is_dict_annotation   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py ActiveParameter._matches_container   100% 11 0 0   100% 8 0   100%
src / mafw / processor.py ProcessorMeta.__init__   100% 11 0 0   100% 6 0   100%
src / mafw / processor.py ProcessorMeta.__call__   100% 3 0 0   100% 0 0   100%
src / mafw / processor.py Processor.parameter_schema   100% 4 0 0   100% 2 0   100%
src / mafw / processor.py Processor.filter_schema   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.processor_schema   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.__init__   100% 57 0 0   100% 2 0   100%
src / mafw / processor.py Processor.initialise_parameters   100% 4 0 0   100% 0 0   100%
src / mafw / processor.py Processor.__post_init__   100% 3 0 0   100% 0 0   100%
src / mafw / processor.py Processor._register_parameters   100% 11 0 0   100% 8 0   100%
src / mafw / processor.py Processor._override_defaults   100% 3 0 0   100% 4 0   100%
src / mafw / processor.py Processor._reset_parameters   100% 3 0 0   100% 0 0   100%
src / mafw / processor.py Processor._load_parameter_configuration   100% 38 0 0   100% 26 0   100%
src / mafw / processor.py Processor._load_parameter_configuration._sanitize_filter_config   100% 31 0 0   100% 24 0   100%
src / mafw / processor.py Processor._overrule_kws_parameters   100% 4 0 0   100% 4 0   100%
src / mafw / processor.py Processor.validate_configuration   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor._check_method_overload   100% 5 0 0   100% 4 0   100%
src / mafw / processor.py Processor._apply_super_call_wrappers   100% 12 0 5   100% 6 0   100%
src / mafw / processor.py Processor._reset_super_call_flag   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor._mark_super_call   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor._did_call_super   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.dump_parameter_configuration   100% 10 0 0   100% 6 0   100%
src / mafw / processor.py Processor.get_parameter   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.get_parameters   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.delete_parameter   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.set_parameter_value   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.get_filter   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.on_processor_status_change   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.on_looping_status_set   100% 6 0 0   100% 6 0   100%
src / mafw / processor.py Processor.format_progress_message   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor._thread_loop_context   100% 10 0 0   100% 4 0   100%
src / mafw / processor.py Processor._in_thread_context   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.item   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.item   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.i_item   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.i_item   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.n_item   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.n_item   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.looping_status   100% 6 0 0   100% 4 0   100%
src / mafw / processor.py Processor.looping_status   100% 10 0 0   100% 8 0   100%
src / mafw / processor.py Processor.unique_name   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.replica_name   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.local_resource_acquisition   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.local_resource_acquisition   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.database   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py Processor.execute   100% 2 0 0   100% 0 0   100%
src / mafw / processor.py Processor._compute_default_max_workers   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor._execute_single   100% 7 0 0   100% 0 0   100%
src / mafw / processor.py Processor._execute_for_loop   100% 18 0 0   100% 6 0   100%
src / mafw / processor.py Processor._build_loop_item   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor._build_loop_result   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor._payload_annotation_matches   100% 6 0 0   100% 4 0   100%
src / mafw / processor.py Processor._call_with_optional_payload   100% 15 0 0   100% 12 0   100%
src / mafw / processor.py Processor._process_for_loop   100% 15 0 0   100% 6 0   100%
src / mafw / processor.py Processor._process_parallel_for_loop   100% 29 0 0   100% 12 0   100%
src / mafw / processor.py Processor._process_parallel_for_loop._set_abort   100% 8 0 0   100% 6 0   100%
src / mafw / processor.py Processor._process_parallel_for_loop._worker   100% 17 0 0   100% 8 0   100%
src / mafw / processor.py Processor._process_parallel_for_loop._submit_next   100% 7 0 0   100% 0 0   100%
src / mafw / processor.py Processor._process_parallel_for_loop_with_queue   100% 32 0 0   100% 12 0   100%
src / mafw / processor.py Processor._process_parallel_for_loop_with_queue._set_abort   88% 8 1 0   67% 6 2   79%
src / mafw / processor.py Processor._process_parallel_for_loop_with_queue._get_abort_status   100% 2 0 0   100% 0 0   100%
src / mafw / processor.py Processor._process_parallel_for_loop_with_queue._worker   100% 18 0 0   100% 10 0   100%
src / mafw / processor.py Processor._process_parallel_for_loop_with_queue._consumer   100% 17 0 0   100% 6 0   100%
src / mafw / processor.py Processor._process_parallel_for_loop_with_queue._submit_next   100% 14 0 0   100% 6 0   100%
src / mafw / processor.py Processor._execute_while_loop   100% 25 0 0   100% 8 0   100%
src / mafw / processor.py Processor.acquire_resources   100% 24 0 0   100% 12 0   100%
src / mafw / processor.py Processor.start   100% 3 0 0   100% 0 0   100%
src / mafw / processor.py Processor.get_items   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.while_condition   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.process   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.accept_item   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.skip_item   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.consumer_start   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.consumer_process   100% 6 0 0   100% 6 0   100%
src / mafw / processor.py Processor.consumer_finish   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py Processor.finish   100% 5 0 0   100% 2 0   100%
src / mafw / processor.py Processor.print_process_statistics   100% 9 0 0   100% 4 0   100%
src / mafw / processor.py Processor._remove_orphan_files   100% 15 0 2   100% 8 0   100%
src / mafw / processor.py ProcessorList.__init__   100% 14 0 0   100% 0 0   100%
src / mafw / processor.py ProcessorList.__setitem__   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py ProcessorList.insert   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py ProcessorList.append   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py ProcessorList.extend   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py ProcessorList.validate_item   100% 8 0 0   100% 4 0   100%
src / mafw / processor.py ProcessorList.validate_items   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py ProcessorList.name   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py ProcessorList.name   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py ProcessorList.processor_exit_status   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py ProcessorList.processor_exit_status   100% 1 0 0   100% 0 0   100%
src / mafw / processor.py ProcessorList.database   100% 3 0 0   100% 2 0   100%
src / mafw / processor.py ProcessorList.execute   100% 17 0 0   100% 6 0   100%
src / mafw / processor.py ProcessorList.acquire_resources   100% 25 0 0   100% 14 0   100%
src / mafw / processor.py ProcessorList.distribute_resources   100% 3 0 0   100% 0 0   100%
src / mafw / processor.py (no function)   100% 200 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py DataRetriever.__init__   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py DataRetriever.patch_data_frame   100% 2 0 0   100% 2 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.is_output_existing   94% 18 1 0   88% 8 1   92%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.process   100% 13 0 0   100% 6 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.is_data_frame_empty   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.in_loop_customization   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.get_data_frame   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.format_progress_message   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.plot   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.customize_plot   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.save   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.update_db   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.slice_data_frame   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.group_and_aggregate_data_frame   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.finish   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter.patch_data_frame   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / abstract_plotter.py GenericPlotter._update_plotter_db   100% 6 0 0   100% 4 0   100%
src / mafw / processor_library / abstract_plotter.py (no function)   100% 47 0 0   100% 0 0   100%
src / mafw / processor_library / db_init.py _standard_table_models   100% 4 0 0   100% 2 0   100%
src / mafw / processor_library / db_init.py TableCreator.__init__   100% 3 0 0   100% 0 0   100%
src / mafw / processor_library / db_init.py TableCreator.validate_configuration   100% 2 0 0   100% 2 0   100%
src / mafw / processor_library / db_init.py TableCreator.process   100% 39 0 0   100% 24 0   100%
src / mafw / processor_library / db_init.py TriggerRefresher.__init__   100% 3 0 0   100% 0 0   100%
src / mafw / processor_library / db_init.py TriggerRefresher.get_dialect   100% 15 0 0   100% 12 0   100%
src / mafw / processor_library / db_init.py TriggerRefresher.start   100% 2 0 0   100% 0 0   100%
src / mafw / processor_library / db_init.py TriggerRefresher.get_items   100% 28 0 2   100% 8 0   100%
src / mafw / processor_library / db_init.py TriggerRefresher.process   100% 1 0 2   100% 0 0   100%
src / mafw / processor_library / db_init.py TriggerRefresher.finish   100% 5 0 0   100% 2 0   100%
src / mafw / processor_library / db_init.py TriggerRefresher.format_progress_message   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / db_init.py SQLScriptRunner.validate_configuration   100% 4 0 2   100% 4 0   100%
src / mafw / processor_library / db_init.py SQLScriptRunner.get_items   100% 1 0 2   100% 0 0   100%
src / mafw / processor_library / db_init.py SQLScriptRunner.process   100% 16 0 0   100% 4 0   100%
src / mafw / processor_library / db_init.py SQLScriptRunner.format_progress_message   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / db_init.py (no function)   100% 46 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py FilenameElement.__init__   100% 9 0 0   100% 2 0   100%
src / mafw / processor_library / importer.py FilenameElement._validate_regexp   100% 4 0 0   100% 2 0   100%
src / mafw / processor_library / importer.py FilenameElement._validate_default_type   100% 2 0 0   100% 2 0   100%
src / mafw / processor_library / importer.py FilenameElement._get_value_type   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / importer.py FilenameElement.reset   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py FilenameElement.from_dict   100% 12 0 0   100% 4 0   100%
src / mafw / processor_library / importer.py FilenameElement.name   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py FilenameElement.value   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py FilenameElement.is_optional   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py FilenameElement.is_found   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / importer.py FilenameElement.pattern   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py FilenameElement.search   100% 6 0 0   100% 4 0   100%
src / mafw / processor_library / importer.py FilenameParser.__init__   100% 4 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py FilenameParser._parser_configuration   100% 6 0 0   100% 4 0   100%
src / mafw / processor_library / importer.py FilenameParser.elements   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py FilenameParser.interpret   100% 9 0 2   100% 6 0   100%
src / mafw / processor_library / importer.py FilenameParser.get_element   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / importer.py FilenameParser.get_element_value   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / importer.py FilenameParser.reset   100% 2 0 0   100% 2 0   100%
src / mafw / processor_library / importer.py Importer.__init__   100% 3 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py Importer.format_progress_message   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / importer.py Importer.start   100% 2 0 2   100% 0 0   100%
src / mafw / processor_library / importer.py (no function)   100% 47 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py PdDataRetriever.__init__   100% 2 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py PdDataRetriever.get_data_frame   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py PdDataRetriever.patch_data_frame   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py PdDataRetriever._attributes_valid   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py FromDatasetDataRetriever.__init__   100% 2 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py FromDatasetDataRetriever._attributes_valid   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / sns_plotter.py FromDatasetDataRetriever.get_data_frame   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / sns_plotter.py SQLPdDataRetriever.__init__   100% 18 0 0   100% 8 0   100%
src / mafw / processor_library / sns_plotter.py SQLPdDataRetriever.get_data_frame   100% 14 0 0   100% 8 0   100%
src / mafw / processor_library / sns_plotter.py SQLPdDataRetriever._attributes_valid   100% 5 0 0   100% 4 0   100%
src / mafw / processor_library / sns_plotter.py HDFPdDataRetriever.__init__   100% 9 0 0   100% 4 0   100%
src / mafw / processor_library / sns_plotter.py HDFPdDataRetriever.get_data_frame   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / sns_plotter.py HDFPdDataRetriever.patch_data_frame   0% 1 1 0   100% 0 0   0%
src / mafw / processor_library / sns_plotter.py HDFPdDataRetriever._attributes_valid   100% 8 0 0   100% 6 0   100%
src / mafw / processor_library / sns_plotter.py SNSFigurePlotter.__init__   100% 5 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py SNSFigurePlotter.plot   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py SNSFigurePlotter._attributes_valid   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py RelPlot.__init__   100% 11 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py RelPlot.plot   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py DisPlot.__init__   100% 13 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py DisPlot.plot   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py CatPlot.__init__   100% 12 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py CatPlot.plot   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py LMPlot.__init__   100% 12 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py LMPlot.plot   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py SNSPlotter.__init__   100% 15 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py SNSPlotter.start   100% 7 0 0   100% 2 0   100%
src / mafw / processor_library / sns_plotter.py SNSPlotter.get_data_frame   100% 1 0 0   100% 0 0   100%
src / mafw / processor_library / sns_plotter.py SNSPlotter.process   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / sns_plotter.py SNSPlotter.group_and_aggregate_data_frame   100% 2 0 0   100% 2 0   100%
src / mafw / processor_library / sns_plotter.py SNSPlotter.is_data_frame_empty   100% 3 0 0   100% 2 0   100%
src / mafw / processor_library / sns_plotter.py SNSPlotter.slice_data_frame   100% 2 0 0   100% 2 0   100%
src / mafw / processor_library / sns_plotter.py (no function)   100% 78 0 0   100% 0 0   100%
src / mafw / runner.py MAFwApplication.__init__   100% 16 0 2   100% 4 0   100%
src / mafw / runner.py MAFwApplication.get_user_interface   100% 5 0 0   100% 2 0   100%
src / mafw / runner.py MAFwApplication.run   100% 11 0 0   100% 4 0   100%
src / mafw / runner.py MAFwApplication._expand_processors_to_run   100% 21 0 0   100% 10 0   100%
src / mafw / runner.py MAFwApplication.init   100% 8 0 0   100% 4 0   100%
src / mafw / runner.py (no function)   100% 19 0 0   100% 0 0   100%
src / mafw / scripts / mafw_exe.py MAFwGroup.parse_args   100% 4 0 0   50% 2 1   83%
src / mafw / scripts / mafw_exe.py MAFwGroup._detect_command_name   62% 16 6 0   50% 10 3   58%
src / mafw / scripts / mafw_exe.py MAFwGroup.invoke   80% 10 2 0   100% 0 0   80%
src / mafw / scripts / mafw_exe.py MAFwGroup.main   83% 12 2 0   100% 2 0   86%
src / mafw / scripts / mafw_exe.py print_banner   100% 17 0 2   100% 8 0   100%
src / mafw / scripts / mafw_exe.py custom_formatwarning   100% 1 0 0   100% 0 0   100%
src / mafw / scripts / mafw_exe.py is_bugged_warning_capture_version   100% 2 0 0   100% 0 0   100%
src / mafw / scripts / mafw_exe.py logger_setup   100% 11 0 0   100% 2 0   100%
src / mafw / scripts / mafw_exe.py display_exception   100% 5 0 0   100% 2 0   100%
src / mafw / scripts / mafw_exe.py cli   100% 5 0 0   100% 2 0   100%
src / mafw / scripts / mafw_exe.py completion   100% 2 0 0   100% 0 0   100%
src / mafw / scripts / mafw_exe.py completion_install   89% 9 1 0   50% 2 1   82%
src / mafw / scripts / mafw_exe.py completion_uninstall   100% 3 0 0   100% 0 0   100%
src / mafw / scripts / mafw_exe.py completion_show   100% 4 0 0   100% 0 0   100%
src / mafw / scripts / mafw_exe.py list_processors   100% 29 0 0   100% 6 0   100%
src / mafw / scripts / mafw_exe.py generate_steering   100% 24 0 0   100% 4 0   100%
src / mafw / scripts / mafw_exe.py run   100% 12 0 0   100% 2 0   100%
src / mafw / scripts / mafw_exe.py wizard   100% 38 0 0   89% 18 2   96%
src / mafw / scripts / mafw_exe.py (no function)   99% 117 1 2   50% 2 1   98%
src / mafw / steering / builder.py SteeringBuilder.__init__   100% 8 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.from_toml   100% 7 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder.from_toml_text   100% 5 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder._load_from_document   100% 26 0 0   100% 16 0   100%
src / mafw / steering / builder.py SteeringBuilder._ensure_str_list   100% 4 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder._toml_to_python   100% 7 0 0   100% 6 0   100%
src / mafw / steering / builder.py SteeringBuilder._parse_db_config   100% 23 0 0   100% 12 0   100%
src / mafw / steering / builder.py SteeringBuilder._parse_ui_config   100% 3 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder._parse_group   100% 8 0 0   100% 4 0   100%
src / mafw / steering / builder.py SteeringBuilder._parse_processor   100% 21 0 0   100% 12 0   100%
src / mafw / steering / builder.py SteeringBuilder._parse_condition   100% 7 0 0   100% 6 0   100%
src / mafw / steering / builder.py SteeringBuilder._load_filters   100% 25 0 0   100% 20 0   100%
src / mafw / steering / builder.py SteeringBuilder._parse_conditional_config   100% 10 0 0   100% 8 0   100%
src / mafw / steering / builder.py SteeringBuilder._parse_field_filter_config   100% 8 0 0   100% 6 0   100%
src / mafw / steering / builder.py SteeringBuilder._parse_filter_section   100% 32 0 0   100% 22 0   100%
src / mafw / steering / builder.py SteeringBuilder.add_processor   100% 8 0 0   100% 4 0   100%
src / mafw / steering / builder.py SteeringBuilder.remove_processor   100% 2 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_processors_to_run   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_parameter   100% 7 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder.remove_parameter   100% 2 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.clear_parameters   100% 2 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.add_replica   100% 2 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_replica_inheritance   100% 2 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_processor_new_only   100% 2 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_filter_config   100% 25 0 0   100% 16 0   100%
src / mafw / steering / builder.py SteeringBuilder._set_logic_expression   100% 19 0 0   100% 4 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_filter_field   100% 7 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder.remove_filter   100% 2 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_processor_filters   100% 3 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_filter_logic   100% 2 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_filter_conditionals   100% 6 0 0   100% 4 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_analysis_name   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_analysis_description   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_new_only   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_create_standard_tables   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_db_url   100% 4 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_db_pragmas   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_db_authentication   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_db_parameters   100% 6 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_default   100% 8 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_db_attribute   100% 4 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder.enable_db_configuration   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.disable_db_configuration   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.is_db_configuration_enabled   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.set_ui_interface   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.add_group   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.remove_group   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.list_processors   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.list_groups   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.extra_globals   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.document   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.validate   100% 2 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.to_config_dict   100% 3 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder.get_processor_config   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.get_group   100% 1 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.to_document   100% 2 0 0   100% 0 0   100%
src / mafw / steering / builder.py SteeringBuilder.write   100% 5 0 0   100% 2 0   100%
src / mafw / steering / builder.py SteeringBuilder._ensure_processor   100% 3 0 0   100% 2 0   100%
src / mafw / steering / builder.py (no function)   100% 78 0 0   100% 0 0   100%
src / mafw / steering / models.py ModelFilterConfig.logic   100% 1 0 0   100% 0 0   100%
src / mafw / steering / models.py ModelFilterConfig.logic   100% 8 0 0   100% 2 0   100%
src / mafw / steering / models.py ModelFilterConfig.__post_init__   100% 2 0 0   100% 0 0   100%
src / mafw / steering / models.py ModelFilterConfig.fill_model_info   100% 12 0 0   100% 4 0   100%
src / mafw / steering / models.py FieldFilterConfig.logic   100% 1 0 0   100% 0 0   100%
src / mafw / steering / models.py FieldFilterConfig.logic   100% 8 0 0   100% 2 0   100%
src / mafw / steering / models.py FieldFilterConfig.__post_init__   100% 1 0 0   100% 0 0   100%
src / mafw / steering / models.py ConditionalFilterConfig.__post_init__   100% 2 0 0   100% 0 0   100%
src / mafw / steering / models.py ConditionalFilterConfig.is_complete   100% 7 0 0   100% 6 0   100%
src / mafw / steering / models.py ConditionalFilterConfig.fill_model_info   100% 12 0 0   100% 4 0   100%
src / mafw / steering / models.py ProcessorRef.full_name   100% 1 0 0   100% 0 0   100%
src / mafw / steering / models.py ProcessorConfig.filter_logic   100% 1 0 0   100% 0 0   100%
src / mafw / steering / models.py ProcessorConfig.filter_logic   100% 8 0 0   100% 2 0   100%
src / mafw / steering / models.py _normalize_field_type   100% 5 0 0   100% 4 0   100%
src / mafw / steering / models.py _field_type_from_peewee   100% 5 0 0   100% 4 0   100%
src / mafw / steering / models.py (no function)   100% 148 0 2   100% 0 0   100%
src / mafw / steering / serializer.py serialize   100% 11 0 0   100% 4 0   100%
src / mafw / steering / serializer.py _add_globals   100% 12 0 0   100% 10 0   100%
src / mafw / steering / serializer.py _add_db   97% 31 1 0   88% 24 3   93%
src / mafw / steering / serializer.py _add_processors   100% 6 0 0   100% 4 0   100%
src / mafw / steering / serializer.py _normalize_logical_op   100% 15 0 0   100% 6 0   100%
src / mafw / steering / serializer.py _serialize_condition   100% 8 0 0   100% 4 0   100%
src / mafw / steering / serializer.py _add_processor_table   100% 63 0 0   98% 48 1   99%
src / mafw / steering / serializer.py _build_conditional_array_from_objects   100% 21 0 0   100% 12 0   100%
src / mafw / steering / serializer.py _build_conditional_array   100% 7 0 0   100% 4 0   100%
src / mafw / steering / serializer.py _add_groups   100% 9 0 0   100% 6 0   100%
src / mafw / steering / serializer.py _add_user_interface   100% 3 0 0   100% 0 0   100%
src / mafw / steering / serializer.py (no function)   100% 19 0 2   100% 0 0   100%
src / mafw / steering / validation.py validate   100% 11 0 0   100% 2 0   100%
src / mafw / steering / validation.py _validate_global_sections   100% 9 0 0   100% 8 0   100%
src / mafw / steering / validation.py _validate_processors_to_run   100% 5 0 0   100% 4 0   100%
src / mafw / steering / validation.py _validate_processors_to_run._is_known   100% 4 0 0   100% 2 0   100%
src / mafw / steering / validation.py _assert_group_members   100% 6 0 0   100% 6 0   100%
src / mafw / steering / validation.py _assert_group_members._is_known   100% 4 0 0   100% 2 0   100%
src / mafw / steering / validation.py _assert_unique_replicas   100% 9 0 0   100% 6 0   100%
src / mafw / steering / validation.py _detect_group_cycles   100% 5 0 0   100% 2 0   100%
src / mafw / steering / validation.py _detect_group_cycles.visit   100% 10 0 0   100% 6 0   100%
src / mafw / steering / validation.py _validate_filter_conditions   100% 11 0 0   94% 16 1   96%
src / mafw / steering / validation.py _validate_logic_expressions   100% 8 0 0   100% 10 0   100%
src / mafw / steering / validation.py _report_logic_issue   100% 6 0 0   100% 4 0   100%
src / mafw / steering / validation.py _logic_target_name   100% 5 0 0   100% 4 0   100%
src / mafw / steering / validation.py _logic_text   100% 7 0 0   100% 4 0   100%
src / mafw / steering / validation.py _report_condition   100% 2 0 0   100% 2 0   100%
src / mafw / steering / validation.py _report_conditional   100% 6 0 0   100% 6 0   100%
src / mafw / steering / validation.py (no function)   100% 22 0 0   100% 0 0   100%
src / mafw / timer.py pretty_format_duration   100% 22 0 0   100% 12 0   100%
src / mafw / timer.py rreplace   100% 4 0 0   100% 2 0   100%
src / mafw / timer.py Timer.__init__   100% 3 0 0   100% 0 0   100%
src / mafw / timer.py Timer.__enter__   100% 3 0 0   100% 0 0   100%
src / mafw / timer.py Timer.__exit__   100% 3 0 0   100% 2 0   100%
src / mafw / timer.py Timer.duration   100% 1 0 0   100% 0 0   100%
src / mafw / timer.py Timer.format_duration   100% 1 0 0   100% 0 0   100%
src / mafw / timer.py (no function)   100% 13 0 0   100% 0 0   100%
src / mafw / tools / click_extensions.py DeprecatedOption.__init__   100% 4 0 0   50% 2 1   83%
src / mafw / tools / click_extensions.py DeprecatedOption.consume_value   100% 4 0 0   100% 2 0   100%
src / mafw / tools / click_extensions.py AbbreviateGroup.invoke   100% 5 0 0   100% 0 0   100%
src / mafw / tools / click_extensions.py AbbreviateGroup.get_command   100% 9 0 0   100% 6 0   100%
src / mafw / tools / click_extensions.py AbbreviateGroup.resolve_command   100% 2 0 2   100% 0 0   100%
src / mafw / tools / click_extensions.py check_ci_completion_guard   100% 3 0 0   100% 2 0   100%
src / mafw / tools / click_extensions.py completion_shell_from_env   100% 7 0 0   100% 4 0   100%
src / mafw / tools / click_extensions.py resolve_completion_shell   100% 6 0 0   100% 4 0   100%
src / mafw / tools / click_extensions.py _virtualenv_root   100% 4 0 0   100% 2 0   100%
src / mafw / tools / click_extensions.py completion_script_path   100% 2 0 0   100% 0 0   100%
src / mafw / tools / click_extensions.py is_script_already_installed   100% 1 0 0   100% 0 0   100%
src / mafw / tools / click_extensions.py _activation_script_path   100% 3 0 0   100% 2 0   100%
src / mafw / tools / click_extensions.py completion_source_script   100% 3 0 0   100% 0 0   100%
src / mafw / tools / click_extensions.py _completion_marker_block   100% 3 0 0   100% 2 0   100%
src / mafw / tools / click_extensions.py _strip_completion_marker_block   100% 2 0 0   100% 0 0   100%
src / mafw / tools / click_extensions.py uninstall_completion_files   100% 18 0 0   100% 16 0   100%
src / mafw / tools / click_extensions.py install_completion   100% 12 0 0   100% 4 0   100%
src / mafw / tools / click_extensions.py (no function)   100% 32 0 2   100% 0 0   100%
src / mafw / tools / db_tools.py make_kv   100% 6 0 0   100% 4 0   100%
src / mafw / tools / db_tools.py get_pk   100% 4 0 2   100% 2 0   100%
src / mafw / tools / db_tools.py combine_fields   100% 6 0 0   100% 4 0   100%
src / mafw / tools / db_tools.py combine_pk   100% 4 0 0   100% 2 0   100%
src / mafw / tools / db_tools.py (no function)   100% 7 0 0   100% 0 0   100%
src / mafw / tools / file_tools.py file_checksum   100% 11 0 0   100% 6 0   100%
src / mafw / tools / file_tools.py remove_widow_db_rows   100% 13 0 0   100% 10 0   100%
src / mafw / tools / file_tools.py remove_widow_db_rows._check_row   100% 11 0 0   100% 12 0   100%
src / mafw / tools / file_tools.py verify_checksum   100% 12 0 0   100% 10 0   100%
src / mafw / tools / file_tools.py verify_checksum._check_row   100% 18 0 0   100% 14 0   100%
src / mafw / tools / file_tools.py verify_checksum._check_row._check_file   100% 3 0 0   100% 2 0   100%
src / mafw / tools / file_tools.py (no function)   100% 12 0 0   100% 0 0   100%
src / mafw / tools / generics.py deep_update   100% 8 0 0   100% 6 0   100%
src / mafw / tools / generics.py (no function)   100% 4 0 0   100% 0 0   100%
src / mafw / tools / loop_tuning.py LoopTuningMixin.initialise_parameters   100% 17 0 0   100% 10 0   100%
src / mafw / tools / loop_tuning.py LoopTuningMixin._validate_loop_type   75% 8 2 0   100% 2 0   80%
src / mafw / tools / loop_tuning.py (no function)   100% 19 0 0   100% 0 0   100%
src / mafw / tools / pandas_tools.py slice_data_frame   100% 9 0 0   100% 6 0   100%
src / mafw / tools / pandas_tools.py group_and_aggregate_data_frame   100% 15 0 0   100% 8 0   100%
src / mafw / tools / pandas_tools.py (no function)   100% 16 0 0   100% 0 0   100%
src / mafw / tools / parallel.py is_free_threading   0% 4 4 0   0% 2 0   0%
src / mafw / tools / parallel.py (no function)   100% 5 0 0   100% 0 0   100%
src / mafw / tools / regexp.py extract_protocol   100% 5 0 0   100% 2 0   100%
src / mafw / tools / regexp.py normalize_sql_spaces   100% 1 0 0   100% 0 0   100%
src / mafw / tools / regexp.py parse_processor_name   100% 12 0 0   100% 8 0   100%
src / mafw / tools / regexp.py (no function)   100% 7 0 0   100% 0 0   100%
src / mafw / tools / shell_tools.py _to_command_line   100% 3 0 0   100% 2 0   100%
src / mafw / tools / shell_tools.py run   100% 14 0 0   100% 8 0   100%
src / mafw / tools / shell_tools.py run_stdout   100% 6 0 0   100% 2 0   100%
src / mafw / tools / shell_tools.py (no function)   100% 11 0 0   100% 0 0   100%
src / mafw / tools / toml_tools.py PathItem.unwrap   100% 1 0 0   100% 0 0   100%
src / mafw / tools / toml_tools.py path_encoder   100% 5 0 0   100% 4 0   100%
src / mafw / tools / toml_tools.py generate_steering_file   100% 8 0 0   100% 2 0   100%
src / mafw / tools / toml_tools.py _new_toml_doc   100% 13 0 0   100% 0 0   100%
src / mafw / tools / toml_tools.py _add_db_configuration   100% 53 0 0   100% 38 0   100%
src / mafw / tools / toml_tools.py _add_processor_parameters_to_toml_doc   100% 42 0 0   96% 28 1   99%
src / mafw / tools / toml_tools.py processor_validator   100% 1 0 0   100% 0 0   100%
src / mafw / tools / toml_tools.py dump_processor_parameters_to_toml   100% 3 0 0   100% 0 0   100%
src / mafw / tools / toml_tools.py _add_user_interface_configuration   100% 8 0 0   100% 2 0   100%
src / mafw / tools / toml_tools.py load_steering_file_legacy   100% 4 0 0   100% 2 0   100%
src / mafw / tools / toml_tools.py load_steering_file   100% 6 0 0   100% 4 0   100%
src / mafw / tools / toml_tools.py resolve_config_env   100% 3 0 0   100% 2 0   100%
src / mafw / tools / toml_tools.py _resolve_value   100% 7 0 0   100% 6 0   100%
src / mafw / tools / toml_tools.py resolve_string   100% 7 0 0   100% 4 0   100%
src / mafw / tools / toml_tools.py _resolve_match   100% 10 0 0   100% 6 0   100%
src / mafw / tools / toml_tools.py (no function)   100% 41 0 0   100% 0 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceMeta.__instancecheck__   100% 1 0 0   100% 0 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceMeta.__subclasscheck__   100% 5 0 0   100% 2 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceBase.create_task   100% 1 0 0   100% 0 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceBase.update_task   100% 1 0 0   100% 0 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceBase.__enter__   100% 1 0 0   100% 0 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceBase.__exit__   100% 1 0 0   100% 0 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceBase.display_progress_message   100% 1 0 0   100% 0 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceBase._is_time_to_display_lopping_message   100% 10 0 0   100% 6 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceBase.change_of_processor_status   100% 1 0 0   100% 0 0   100%
src / mafw / ui / abstract_user_interface.py UserInterfaceBase.enter_interactive_mode   100% 3 0 0   100% 0 0   100%
src / mafw / ui / abstract_user_interface.py (no function)   100% 25 0 0   100% 0 0   100%
src / mafw / ui / console_user_interface.py ConsoleInterface.create_task   100% 1 0 0   100% 0 0   100%
src / mafw / ui / console_user_interface.py ConsoleInterface.update_task   100% 1 0 0   100% 0 0   100%
src / mafw / ui / console_user_interface.py ConsoleInterface.__enter__   100% 1 0 0   100% 0 0   100%
src / mafw / ui / console_user_interface.py ConsoleInterface.__exit__   100% 1 0 0   100% 0 0   100%
src / mafw / ui / console_user_interface.py ConsoleInterface.display_progress_message   100% 7 0 0   100% 4 0   100%
src / mafw / ui / console_user_interface.py ConsoleInterface.change_of_processor_status   100% 2 0 0   100% 0 0   100%
src / mafw / ui / console_user_interface.py ConsoleInterface.prompt_question   100% 1 0 0   100% 0 0   100%
src / mafw / ui / console_user_interface.py (no function)   100% 16 0 0   100% 0 0   100%
src / mafw / ui / rich_user_interface.py RichInterface.__init__   100% 4 0 0   100% 2 0   100%
src / mafw / ui / rich_user_interface.py RichInterface.__enter__   100% 2 0 0   100% 0 0   100%
src / mafw / ui / rich_user_interface.py RichInterface.__exit__   100% 1 0 0   100% 0 0   100%
src / mafw / ui / rich_user_interface.py RichInterface.create_task   100% 4 0 0   100% 2 0   100%
src / mafw / ui / rich_user_interface.py RichInterface.update_task   100% 8 0 0   100% 4 0   100%
src / mafw / ui / rich_user_interface.py RichInterface.display_progress_message   100% 7 0 0   100% 4 0   100%
src / mafw / ui / rich_user_interface.py RichInterface.change_of_processor_status   100% 2 0 0   100% 0 0   100%
src / mafw / ui / rich_user_interface.py RichInterface.enter_interactive_mode   100% 9 0 0   100% 0 0   100%
src / mafw / ui / rich_user_interface.py RichInterface.prompt_question   100% 9 0 0   100% 0 0   100%
src / mafw / ui / rich_user_interface.py (no function)   100% 21 0 0   100% 0 0   100%
Total     98% 8420 137 1446   95% 2812 118   98%

No items found using the specified filter.

48 empty functions skipped.