LICENSE
MANIFEST.in
README.md
pyproject.toml
setup.py
docs/design.md
docs/design_en.md
docs/tui_and_config_split_design.md
docs/user_manual.md
docs/user_manual_en.md
src/symtest/__init__.py
src/symtest/cli.py
src/symtest/logging_config.py
src/symtest/commands/__init__.py
src/symtest/commands/compare.py
src/symtest/config/__init__.py
src/symtest/config/config_io.py
src/symtest/config/config_schema.py
src/symtest/config/import_expander.py
src/symtest/config/inheritance_expander.py
src/symtest/core/__init__.py
src/symtest/core/assertions.py
src/symtest/core/base_runner.py
src/symtest/core/config_loader.py
src/symtest/core/execution.py
src/symtest/core/history_store.py
src/symtest/core/last_run_store.py
src/symtest/core/parallel_runner.py
src/symtest/core/process_worker.py
src/symtest/core/sequence_state.py
src/symtest/core/setup.py
src/symtest/core/test_case.py
src/symtest/core/types.py
src/symtest/file_comparator/__init__.py
src/symtest/file_comparator/base_comparator.py
src/symtest/file_comparator/binary_comparator.py
src/symtest/file_comparator/csv_comparator.py
src/symtest/file_comparator/factory.py
src/symtest/file_comparator/h5_comparator.py
src/symtest/file_comparator/json_comparator.py
src/symtest/file_comparator/result.py
src/symtest/file_comparator/script_comparator.py
src/symtest/file_comparator/text_comparator.py
src/symtest/file_comparator/xml_comparator.py
src/symtest/runners/__init__.py
src/symtest/runners/config_runner.py
src/symtest/runners/json_runner.py
src/symtest/runners/parallel_config_runner.py
src/symtest/runners/parallel_json_runner.py
src/symtest/runners/parallel_yaml_runner.py
src/symtest/runners/yaml_runner.py
src/symtest/tui/__init__.py
src/symtest/tui/app.py
src/symtest/tui/controllers/__init__.py
src/symtest/tui/controllers/case_controller.py
src/symtest/tui/screens/__init__.py
src/symtest/tui/screens/case_editor.py
src/symtest/tui/screens/case_list.py
src/symtest/tui/widgets/__init__.py
src/symtest/tui/widgets/case_table.py
src/symtest/tui/widgets/expected_editor.py
src/symtest/tui/widgets/search_bar.py
src/symtest/tui/widgets/steps_editor.py
src/symtest/utils/__init__.py
src/symtest/utils/junit_xml_writer.py
src/symtest/utils/path_resolver.py
src/symtest/utils/report_generator.py
src/symtest_cli.egg-info/PKG-INFO
src/symtest_cli.egg-info/SOURCES.txt
src/symtest_cli.egg-info/dependency_links.txt
src/symtest_cli.egg-info/entry_points.txt
src/symtest_cli.egg-info/requires.txt
src/symtest_cli.egg-info/top_level.txt
tests/README.md
tests/__init__.py
tests/conftest.py
tests/run_all.py
tests/__pycache__/__init__.cpython-312.pyc
tests/__pycache__/__init__.cpython-313.pyc
tests/__pycache__/__init__.cpython-39.pyc
tests/__pycache__/conftest.cpython-312-pytest-7.4.4.pyc
tests/__pycache__/conftest.cpython-312-pytest-9.0.3.pyc
tests/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc
tests/__pycache__/conftest.cpython-39-pytest-8.3.4.pyc
tests/__pycache__/run_all.cpython-312.pyc
tests/__pycache__/run_all.cpython-313.pyc
tests/__pycache__/run_all.cpython-39.pyc
tests/__pycache__/test_setup_module.cpython-312-pytest-7.4.4.pyc
tests/demos/h5_filter_demo.py
tests/demos/manual_report_example.py
tests/demos/perf_parallel.py
tests/e2e/__init__.py
tests/e2e/test_user_flows.py
tests/e2e/__pycache__/__init__.cpython-312.pyc
tests/e2e/__pycache__/__init__.cpython-313.pyc
tests/e2e/__pycache__/__init__.cpython-39.pyc
tests/e2e/__pycache__/test_user_flows.cpython-312-pytest-7.4.4.pyc
tests/e2e/__pycache__/test_user_flows.cpython-312-pytest-9.0.3.pyc
tests/e2e/__pycache__/test_user_flows.cpython-313-pytest-9.0.2.pyc
tests/e2e/__pycache__/test_user_flows.cpython-39-pytest-8.3.4.pyc
tests/fixtures/circular_config_a.json
tests/fixtures/circular_config_b.json
tests/fixtures/hourglass_stdout_mismatch.txt
tests/fixtures/hourglass_stdout_sample.txt
tests/fixtures/inheritance_base.json
tests/fixtures/inheritance_chain.json
tests/fixtures/inheritance_circular.json
tests/fixtures/main_config.json
tests/fixtures/missing_fields.json
tests/fixtures/mock_fail_script.py
tests/fixtures/mock_pass_script.py
tests/fixtures/setup_main.json
tests/fixtures/setup_sub.json
tests/fixtures/sub_json_tests.yaml
tests/fixtures/sub_text_tests.json
tests/fixtures/test_cases.json
tests/fixtures/test_cases.yaml
tests/fixtures/test_cases1.json
tests/fixtures/test_with_setup.json
tests/fixtures/test_with_setup.yaml
tests/integration/test_history_feature.py
tests/integration/test_new_cli_features.py
tests/integration/test_real_command_execution.py
tests/integration/test_sequence.py
tests/integration/__pycache__/test_history_feature.cpython-312-pytest-7.4.4.pyc
tests/integration/__pycache__/test_history_feature.cpython-312-pytest-9.0.3.pyc
tests/integration/__pycache__/test_history_feature.cpython-313-pytest-9.0.2.pyc
tests/integration/__pycache__/test_new_cli_features.cpython-312-pytest-9.0.3.pyc
tests/integration/__pycache__/test_new_cli_features.cpython-313-pytest-9.0.2.pyc
tests/integration/__pycache__/test_real_command_execution.cpython-312-pytest-7.4.4.pyc
tests/integration/__pycache__/test_real_command_execution.cpython-312-pytest-9.0.3.pyc
tests/integration/__pycache__/test_real_command_execution.cpython-313-pytest-9.0.2.pyc
tests/integration/__pycache__/test_sequence.cpython-312-pytest-7.4.4.pyc
tests/integration/__pycache__/test_sequence.cpython-312-pytest-9.0.3.pyc
tests/integration/__pycache__/test_sequence.cpython-313-pytest-9.0.2.pyc
tests/integration/file_compare/test_binary_compare.py
tests/integration/file_compare/test_csv_compare.py
tests/integration/file_compare/test_h5_compare.py
tests/integration/file_compare/test_json_compare.py
tests/integration/file_compare/test_text_compare.py
tests/integration/file_compare/test_xml_compare.py
tests/integration/file_compare/__pycache__/test_binary_compare.cpython-312-pytest-7.4.4.pyc
tests/integration/file_compare/__pycache__/test_binary_compare.cpython-312-pytest-9.0.3.pyc
tests/integration/file_compare/__pycache__/test_binary_compare.cpython-313-pytest-9.0.2.pyc
tests/integration/file_compare/__pycache__/test_binary_compare.cpython-39-pytest-8.3.4.pyc
tests/integration/file_compare/__pycache__/test_csv_compare.cpython-312-pytest-7.4.4.pyc
tests/integration/file_compare/__pycache__/test_csv_compare.cpython-312-pytest-9.0.3.pyc
tests/integration/file_compare/__pycache__/test_csv_compare.cpython-313-pytest-9.0.2.pyc
tests/integration/file_compare/__pycache__/test_h5_compare.cpython-312-pytest-7.4.4.pyc
tests/integration/file_compare/__pycache__/test_h5_compare.cpython-312-pytest-9.0.3.pyc
tests/integration/file_compare/__pycache__/test_h5_compare.cpython-313-pytest-9.0.2.pyc
tests/integration/file_compare/__pycache__/test_h5_compare.cpython-39-pytest-8.3.4.pyc
tests/integration/file_compare/__pycache__/test_json_compare.cpython-312-pytest-7.4.4.pyc
tests/integration/file_compare/__pycache__/test_json_compare.cpython-312-pytest-9.0.3.pyc
tests/integration/file_compare/__pycache__/test_json_compare.cpython-313-pytest-9.0.2.pyc
tests/integration/file_compare/__pycache__/test_json_compare.cpython-39-pytest-8.3.4.pyc
tests/integration/file_compare/__pycache__/test_text_compare.cpython-312-pytest-7.4.4.pyc
tests/integration/file_compare/__pycache__/test_text_compare.cpython-312-pytest-9.0.3.pyc
tests/integration/file_compare/__pycache__/test_text_compare.cpython-313-pytest-9.0.2.pyc
tests/integration/file_compare/__pycache__/test_text_compare.cpython-39-pytest-8.3.4.pyc
tests/integration/file_compare/__pycache__/test_xml_compare.cpython-312-pytest-7.4.4.pyc
tests/integration/file_compare/__pycache__/test_xml_compare.cpython-312-pytest-9.0.3.pyc
tests/integration/file_compare/__pycache__/test_xml_compare.cpython-313-pytest-9.0.2.pyc
tests/integration/parallel/test_parallel_runner.py
tests/integration/parallel/__pycache__/test_parallel_runner.cpython-312-pytest-7.4.4.pyc
tests/integration/parallel/__pycache__/test_parallel_runner.cpython-312-pytest-9.0.3.pyc
tests/integration/parallel/__pycache__/test_parallel_runner.cpython-313-pytest-9.0.2.pyc
tests/integration/parallel/__pycache__/test_parallel_runner.cpython-39-pytest-8.3.4.pyc
tests/integration/path_handling/test_spaces_in_paths.py
tests/integration/path_handling/__pycache__/test_spaces_in_paths.cpython-312-pytest-7.4.4.pyc
tests/integration/path_handling/__pycache__/test_spaces_in_paths.cpython-312-pytest-9.0.3.pyc
tests/integration/path_handling/__pycache__/test_spaces_in_paths.cpython-313-pytest-9.0.2.pyc
tests/integration/path_handling/__pycache__/test_spaces_in_paths.cpython-39-pytest-8.3.4.pyc
tests/unit/test_binary_comparator.py
tests/unit/test_cli.py
tests/unit/test_config_io.py
tests/unit/test_h5_comparator.py
tests/unit/test_import_expander.py
tests/unit/test_inheritance_expander.py
tests/unit/test_result.py
tests/unit/test_run_all.py
tests/unit/__pycache__/test_binary_comparator.cpython-312-pytest-9.0.3.pyc
tests/unit/__pycache__/test_binary_comparator.cpython-313-pytest-9.0.2.pyc
tests/unit/__pycache__/test_cli.cpython-312-pytest-7.4.4.pyc
tests/unit/__pycache__/test_cli.cpython-312-pytest-9.0.3.pyc
tests/unit/__pycache__/test_cli.cpython-313-pytest-9.0.2.pyc
tests/unit/__pycache__/test_config_io.cpython-312-pytest-9.0.3.pyc
tests/unit/__pycache__/test_config_io.cpython-313-pytest-9.0.2.pyc
tests/unit/__pycache__/test_h5_comparator.cpython-312-pytest-7.4.4.pyc
tests/unit/__pycache__/test_h5_comparator.cpython-312-pytest-9.0.3.pyc
tests/unit/__pycache__/test_h5_comparator.cpython-313-pytest-9.0.2.pyc
tests/unit/__pycache__/test_import_expander.cpython-312-pytest-7.4.4.pyc
tests/unit/__pycache__/test_import_expander.cpython-312-pytest-9.0.3.pyc
tests/unit/__pycache__/test_import_expander.cpython-313-pytest-9.0.2.pyc
tests/unit/__pycache__/test_inheritance_expander.cpython-312-pytest-9.0.3.pyc
tests/unit/__pycache__/test_inheritance_expander.cpython-313-pytest-9.0.2.pyc
tests/unit/__pycache__/test_result.cpython-312-pytest-9.0.3.pyc
tests/unit/__pycache__/test_result.cpython-313-pytest-9.0.2.pyc
tests/unit/__pycache__/test_run_all.cpython-312-pytest-7.4.4.pyc
tests/unit/__pycache__/test_run_all.cpython-312-pytest-9.0.3.pyc
tests/unit/__pycache__/test_run_all.cpython-313-pytest-9.0.2.pyc
tests/unit/commands/test_compare_command.py
tests/unit/commands/__pycache__/test_compare_command.cpython-312-pytest-7.4.4.pyc
tests/unit/commands/__pycache__/test_compare_command.cpython-312-pytest-9.0.3.pyc
tests/unit/commands/__pycache__/test_compare_command.cpython-313-pytest-9.0.2.pyc
tests/unit/core/test_assertions.py
tests/unit/core/test_config_loader.py
tests/unit/core/test_config_loader_new_features.py
tests/unit/core/test_execution.py
tests/unit/core/test_execution_new_features.py
tests/unit/core/test_history_store.py
tests/unit/core/test_last_run_store.py
tests/unit/core/test_process_worker.py
tests/unit/core/test_sequence_state.py
tests/unit/core/test_setup.py
tests/unit/core/test_validation_error.py
tests/unit/core/test_xfail.py
tests/unit/core/__pycache__/test_assertions.cpython-312-pytest-7.4.4.pyc
tests/unit/core/__pycache__/test_assertions.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_assertions.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_config_loader.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_config_loader.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_config_loader_new_features.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_config_loader_new_features.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_execution.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_execution.cpython-312.pyc
tests/unit/core/__pycache__/test_execution.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_execution_new_features.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_execution_new_features.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_history_store.cpython-312-pytest-7.4.4.pyc
tests/unit/core/__pycache__/test_history_store.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_history_store.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_last_run_store.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_last_run_store.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_process_worker.cpython-312-pytest-7.4.4.pyc
tests/unit/core/__pycache__/test_process_worker.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_process_worker.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_sequence_state.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_setup.cpython-312-pytest-7.4.4.pyc
tests/unit/core/__pycache__/test_setup.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_setup.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_setup.cpython-39-pytest-8.3.4.pyc
tests/unit/core/__pycache__/test_validation_error.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_validation_error.cpython-313-pytest-9.0.2.pyc
tests/unit/core/__pycache__/test_xfail.cpython-312-pytest-9.0.3.pyc
tests/unit/core/__pycache__/test_xfail.cpython-313-pytest-9.0.2.pyc
tests/unit/file_comparator/test_error_analysis.py
tests/unit/file_comparator/test_hourglass_tangent_comparator.py
tests/unit/file_comparator/test_script_comparator.py
tests/unit/file_comparator/test_workspace_plugins.py
tests/unit/file_comparator/__pycache__/__init__.cpython-312.pyc
tests/unit/file_comparator/__pycache__/test_error_analysis.cpython-312-pytest-9.0.3.pyc
tests/unit/file_comparator/__pycache__/test_error_analysis.cpython-313-pytest-9.0.2.pyc
tests/unit/file_comparator/__pycache__/test_hourglass_tangent_comparator.cpython-312-pytest-9.0.3.pyc
tests/unit/file_comparator/__pycache__/test_hourglass_tangent_comparator.cpython-313-pytest-9.0.2.pyc
tests/unit/file_comparator/__pycache__/test_script_comparator.cpython-312-pytest-9.0.3.pyc
tests/unit/file_comparator/__pycache__/test_script_comparator.cpython-313-pytest-9.0.2.pyc
tests/unit/file_comparator/__pycache__/test_workspace_plugins.cpython-312-pytest-9.0.3.pyc
tests/unit/file_comparator/__pycache__/test_workspace_plugins.cpython-313-pytest-9.0.2.pyc
tests/unit/runners/test_json_yaml_runner.py
tests/unit/runners/test_test_case_filter.py
tests/unit/runners/test_test_case_tag_filter.py
tests/unit/runners/__pycache__/test_json_yaml_runner.cpython-312-pytest-7.4.4.pyc
tests/unit/runners/__pycache__/test_json_yaml_runner.cpython-312-pytest-9.0.3.pyc
tests/unit/runners/__pycache__/test_json_yaml_runner.cpython-312.pyc
tests/unit/runners/__pycache__/test_json_yaml_runner.cpython-313-pytest-9.0.2.pyc
tests/unit/runners/__pycache__/test_json_yaml_runner.cpython-39-pytest-8.3.4.pyc
tests/unit/runners/__pycache__/test_test_case_filter.cpython-312-pytest-7.4.4.pyc
tests/unit/runners/__pycache__/test_test_case_filter.cpython-312-pytest-9.0.3.pyc
tests/unit/runners/__pycache__/test_test_case_filter.cpython-313-pytest-9.0.2.pyc
tests/unit/runners/__pycache__/test_test_case_tag_filter.cpython-312-pytest-9.0.3.pyc
tests/unit/runners/__pycache__/test_test_case_tag_filter.cpython-313-pytest-9.0.2.pyc
tests/unit/tui/__init__.py
tests/unit/tui/conftest.py
tests/unit/tui/test_app.py
tests/unit/tui/test_case_controller.py
tests/unit/tui/test_search_functions.py
tests/unit/tui/test_tui_run_test.py
tests/unit/tui/test_widgets_data.py
tests/unit/tui/__pycache__/__init__.cpython-312.pyc
tests/unit/tui/__pycache__/__init__.cpython-313.pyc
tests/unit/tui/__pycache__/conftest.cpython-312-pytest-9.0.3.pyc
tests/unit/tui/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc
tests/unit/tui/__pycache__/test_app.cpython-312-pytest-7.4.4.pyc
tests/unit/tui/__pycache__/test_app.cpython-312-pytest-9.0.3.pyc
tests/unit/tui/__pycache__/test_app.cpython-313-pytest-9.0.2.pyc
tests/unit/tui/__pycache__/test_case_controller.cpython-312-pytest-7.4.4.pyc
tests/unit/tui/__pycache__/test_case_controller.cpython-312-pytest-9.0.3.pyc
tests/unit/tui/__pycache__/test_case_controller.cpython-313-pytest-9.0.2.pyc
tests/unit/tui/__pycache__/test_search_functions.cpython-312-pytest-7.4.4.pyc
tests/unit/tui/__pycache__/test_search_functions.cpython-312-pytest-9.0.3.pyc
tests/unit/tui/__pycache__/test_search_functions.cpython-313-pytest-9.0.2.pyc
tests/unit/tui/__pycache__/test_tui_run_test.cpython-312-pytest-9.0.3.pyc
tests/unit/tui/__pycache__/test_tui_run_test.cpython-313-pytest-9.0.2.pyc
tests/unit/tui/__pycache__/test_widgets_data.cpython-312-pytest-7.4.4.pyc
tests/unit/tui/__pycache__/test_widgets_data.cpython-312-pytest-9.0.3.pyc
tests/unit/tui/__pycache__/test_widgets_data.cpython-313-pytest-9.0.2.pyc
tests/unit/utils/test_junit_xml_writer.py
tests/unit/utils/test_report_generator.py
tests/unit/utils/__pycache__/test_junit_xml_writer.cpython-312-pytest-7.4.4.pyc
tests/unit/utils/__pycache__/test_junit_xml_writer.cpython-312-pytest-9.0.3.pyc
tests/unit/utils/__pycache__/test_junit_xml_writer.cpython-313-pytest-9.0.2.pyc
tests/unit/utils/__pycache__/test_report_generator.cpython-312-pytest-7.4.4.pyc
tests/unit/utils/__pycache__/test_report_generator.cpython-312-pytest-9.0.3.pyc
tests/unit/utils/__pycache__/test_report_generator.cpython-313-pytest-9.0.2.pyc