rdetoolkit 1.5.2__tar.gz → 1.5.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/PKG-INFO +1 -1
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/pyproject.toml +1 -1
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/__init__.py +1 -1
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/invoicefile.py +11 -9
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/invoice.py +41 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_invoicefile.py +28 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_smarttable_invoice_initializer.py +170 -11
- rdetoolkit-1.5.3/tools/bump_version.py +376 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/uv.lock +1 -1
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.cargo/config.toml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/CODEOWNERS +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/ISSUE_TEMPLATE/custom-issue-reporting-template.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/dependabot.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/release.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/build-index.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/build-test-develop.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/cache.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/core_module.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/coverage_badge.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/coverage_pr_reports.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/docs-ci.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/docs-pr-check.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/main.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/pr-agent.yaml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.github/workflows/pypi-release.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.gitignore +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.mise.toml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.pr_agent.toml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.pre-commit-config.yaml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.prettierrc +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.textlintrc.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.vscode/settings.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/.yamllint +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/AGENTS.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/CHANGELOG.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/CLAUDE.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/CONTRIBUTING.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/CONTRIBUTORS.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/Cargo.lock +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/Cargo.toml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/LICENSE +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/README.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/README_ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/api/index.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/api/index.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/api/result.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/api/result.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/contribute/documents_contributing.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/contribute/home.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/contribute/sourcecode_contributing.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/development/contributing.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/development/contributing.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/development/docs.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/development/docs.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/development/index.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/development/index.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/development/type_checking.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/2585322.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/coverage.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/error.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/excelinvoice.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/excelinvoice_demo.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/excelinvoice_format.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/filemode_excelinvoice.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/foldermode_excelinvoice.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/invoice_mode.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/magic_filename.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/multidatatile_mode.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/multifile_mode.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/overview_workflow.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/quick-sample-code-none.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/quick-sample-code.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/rde_sample_uuid.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/rde_user_uuid.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/rdeformat.svg +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/img/smarttable_excel_sample.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/index.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/index.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/installation.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/installation.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/overrides/main.html +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/quick-start.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/quick-start.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/artifact/report.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/artifact/report.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/cmd/archive.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/cmd/command.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/cmd/command.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/cmd/gen_config.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/cmd/gen_config.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/cmd/gen_excelinvoice.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/cmd/gen_excelinvoice.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/cmd/validate.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/cmd/validate.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/config.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/core.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/csv2graph.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/errors.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/exceptions.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/fileops.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/img2thumb.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/impl/compressed_controller.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/impl/input_controller.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/impl/input_controller.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/index.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/interface/filechecker.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/invoicefile.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/config.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/config.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/invoice.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/invoice.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/invoice_schema.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/invoice_schema.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/metadata.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/metadata.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/rde2types.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/rde2types.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/report.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/result.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/models/result.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/modeproc.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/context.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/factories.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/index.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/pipeline.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/processors/datasets.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/processors/descriptions.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/processors/files.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/processors/index.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/processors/invoice.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/processors/thumbnails.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/processors/validation.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/processing/processors/variables.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/rde2util.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/rdelogger.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/storage/minio.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/storage/minio.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/traceback/formatter.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/traceback/index.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/traceback/masking.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/validation.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/rdetoolkit/workflows.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/releases/index.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/releases/index.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/search/rdetoolkit_code_index.jsonl +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/cli.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/cli.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/config/config.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/config/config.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/config/file_folder_mode.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/config/file_folder_mode.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/config/magic_variable.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/config/magic_variable.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/docker.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/docker.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/logging.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/logging.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/metadata_definition_file.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/metadata_definition_file.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_excelinvoice.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_excelinvoice.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_invoice.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_invoice.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_multidatatile.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_multidatatile.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_rdeformat.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_rdeformat.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_smarttableinvoice.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/mode/mode_smarttableinvoice.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/object_storage.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/object_storage.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/quickstart.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/quickstart.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample1/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample1/data.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample1/sample.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample10/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample10/data.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample10/sample_lim.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample11/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample11/main_image/data.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample11/other_image/data_intensity_(counts).png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample11/switch_output_directory.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample12/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample12/data.html +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample12/data.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample12/output_html.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample2/I/342/200/223V_Curve_of_a_Diode_log_scale.png" +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample2/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample2/sample.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample3/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample3/data.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample3/sample_invert.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample4/Angle-Dependent-Torque.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample4/Angle-Dependent-Torque_j1.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample4/Angle-Dependent-Torque_j2.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample4/Angle-Dependent-Torque_j3.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample4/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample4/sample_pair_plot.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample5/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample5/data.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample5/sample_custom_title.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample6/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample6/data.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample6/sample_max_legend_items.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample7/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample7/sample.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample8/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample8/sample_legend_info.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample8/sample_legend_info.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample9/data.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample9/data.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples/sample9/sample_grid.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/csv2graph_samples.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/development_guide.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/development_guide.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/directory.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/directory.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/errorhandling.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/errorhandling.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/feature_description.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/feature_description.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/rdepath.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/rdepath.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/structured.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/structured.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/traceback.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/structured_process/traceback.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/validation.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/usage/validation.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/user-guide/config.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/user-guide/config.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/user-guide/index.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/user-guide/index.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/user-guide/structured-processing.en.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/docs/user-guide/structured-processing.ja.md +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/mkdocs.yml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/pytest.xml +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/rdetoolkit-core/build.rs +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/rdetoolkit-core/charset_detector.rs +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/rdetoolkit-core/fsops.rs +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/rdetoolkit-core/imageutil/processing.rs +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/rdetoolkit-core/imageutil.rs +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/rdetoolkit-core/lib.rs +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/requirements-dev.lock +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/requirements.lock +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/__main__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/__main__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/artifact/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/artifact/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/artifact/report.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/artifact/report.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cli/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cli/app.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cli/app.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cli/validate.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cli/validate.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cli.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/archive.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/archive.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/command.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/command.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/csv2graph.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/csv2graph.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/default.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/default.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/gen_config.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/gen_config.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/gen_excelinvoice.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/gen_excelinvoice.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/validate.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/cmd/validate.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/config.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/config.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/core.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/errors.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/errors.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/exceptions.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/exceptions.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/fileops.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/fileops.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/api/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/api/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/api/csv2graph.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/api/csv2graph.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/api.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/config.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/config.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/exceptions.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/exceptions.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/io/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/io/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/io/file_writer.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/io/file_writer.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/io/path_validator.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/io/path_validator.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/io.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/models.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/models.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/normalizers.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/normalizers.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/base.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/base.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/noheader_parser.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/noheader_parser.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/parser_factory.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/parser_factory.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/standard_parser.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/standard_parser.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/transpose_parser.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers/transpose_parser.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/parsers.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/renderers/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/renderers/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/renderers/base.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/renderers/base.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/renderers/matplotlib_renderer.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/renderers/matplotlib_renderer.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/renderers/plotly_renderer.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/renderers/plotly_renderer.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/renderers.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/all_graphs.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/all_graphs.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/base.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/base.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/dual_axis.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/dual_axis.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/individual.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies/individual.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/strategies.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/textutils.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph/textutils.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/graph.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/img2thumb.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/img2thumb.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/impl/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/impl/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/impl/compressed_controller.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/impl/compressed_controller.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/impl/input_controller.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/impl/input_controller.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/interfaces/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/interfaces/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/interfaces/filechecker.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/interfaces/filechecker.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/interfaces/report.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/interfaces/report.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/invoicefile.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/config.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/config.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/invoice.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/invoice.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/invoice_schema.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/invoice_schema.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/metadata.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/metadata.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/rde2types.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/rde2types.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/reports.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/reports.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/result.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/models/result.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/modeproc.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/modeproc.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/context.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/context.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/factories.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/factories.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/pipeline.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/pipeline.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/datasets.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/datasets.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/descriptions.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/descriptions.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/files.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/files.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/invoice.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/smarttable_early_exit.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/smarttable_early_exit.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/structured.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/structured.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/thumbnails.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/thumbnails.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/validation.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/validation.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/variables.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors/variables.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing/processors.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/processing.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/py.typed +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/rde2util.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/rde2util.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/rdelogger.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/rdelogger.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/result.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/result.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/static/ex_generalterm.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/static/ex_specificterm.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/static/invoice_basic_and_sample.schema_.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/storage/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/storage/__init__.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/storage/minio.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/storage/minio.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/traceback/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/traceback/formatter.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/traceback/formatter.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/traceback/masking.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/traceback/masking.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/validation.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/validation.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/workflows.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit/workflows.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/src/rdetoolkit.pyi +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/cmd/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/cmd/test_init.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/cmd/test_run.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/cmd/test_validate_commands.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/conftest.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/csv2graph.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/excelinvoice.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/invoice.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/metadata_json.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/processing/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/processing/context.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/processing/mock_processors.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/schema.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/fixtures/static.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/graph/test_config.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/graph/test_normalizers.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/graph/test_parsers.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/graph/test_renderer_log_formatting.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/graph/test_textutils.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/images/test_cos_640_480.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/images/test_sin_300_300.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/images/test_tan_1080_480.png +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/impl/test_multifile_checker.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/invoice/test_magic_variables.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/conftest.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_datasets.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_description.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_files.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_invoice.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_invoice_metadata.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_invoice_smarttable.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_invoice_smarttable_clearing.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_thumbnails.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_validation.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/processors/test_variables.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/test_context.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/test_factories.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/test_pipeline.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/test_smarttable_dataset_callback.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/processing/test_structured_invoice_saver.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/property/__init__.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/property/conftest.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/property/strategies.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/property/test_graph_normalizers.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/property/test_graph_path_validator.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/property/test_graph_textutils.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/property/test_rde2util_castval.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/property/test_smoke.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/property/test_validation.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.schema.basic.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.schema.full.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.schema.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.schema_invalid.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.schema_none_custom.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.schema_none_generalAttributes.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.schema_none_sample.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.schema_none_specificAttributes.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice.schema_not_support_value.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice_allow_none.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice_invalid.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice_invalid_none_basic.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice_invalid_sample_anyof.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice_restructured.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice_sample_adding.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice_sample_excel.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice_sample_ref.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/invoice_schema_with_sample.json +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/test_excelinvoice_term_sample.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/samplefile/test_excelinvoice_term_sample_folder.csv +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_backup_invoice.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_castval_boolean.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_check_files.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_cli.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_cli_gen_config.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_cli_init_templates.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_compressedfile_mode.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_config.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_csv2graph_html_output.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_csv2graph_unit.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_exception.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_extended_mode_validation.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_filename_mapping_rule.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_fileops.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_generate_folder_paths_iterator.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_graph_outputs.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_inputfile_checker.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_inputmode_processer.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_logger.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_matplotlib_renderer.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_models.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_modeproc_result.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_normalizers.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_parsers.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_path_validator.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_py39_deprecation.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_rc_frame_detection.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_rde2types_newtype.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_rde2util.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_rdeformat_system_files.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_registory.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_renderers.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_report.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_result.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_result_type.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_save_behavior.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_smarttable_checker.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_smarttable_early_exit_processor.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_smarttable_file.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_smarttable_file_copier.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_storage.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_stub.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_system_files_cleaner.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_system_files_filtering.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_textutils.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_thumbnail.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_traceback_integration.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_traceback_off_settings.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_validator.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_workflow.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/test_workflows_result.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/traceback/test_compact_trace_formatter.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tests/traceback/test_sensitive_masker.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tools/build_index.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tools/snipet.py +0 -0
- {rdetoolkit-1.5.2 → rdetoolkit-1.5.3}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "rdetoolkit"
|
|
3
|
-
version = "1.5.
|
|
3
|
+
version = "1.5.3"
|
|
4
4
|
description = "A module that supports the workflow of the RDE dataset construction program"
|
|
5
5
|
authors = [{ name = "NIMS MDPF", email = "rde@nims.go" }]
|
|
6
6
|
keywords = ["rdetoolkit", "RDE", "toolkit", "structure", "dataset"]
|
|
@@ -160,16 +160,18 @@ def check_exist_rawfiles(dfexcelinvoice: pd.DataFrame, excel_rawfiles: list[Path
|
|
|
160
160
|
excel_rawfiles (list[Path]): A list of Path objects representing file paths.
|
|
161
161
|
|
|
162
162
|
Raises:
|
|
163
|
-
|
|
163
|
+
StructuredError: If any file name in dfexcelinvoice is not found in excel_rawfiles.
|
|
164
164
|
|
|
165
165
|
Returns:
|
|
166
166
|
list[Path]: A list of Path objects corresponding to the file names in dfexcelinvoice, ordered as they appear in the DataFrame.
|
|
167
167
|
"""
|
|
168
|
-
file_set_group = {f.name for f in excel_rawfiles}
|
|
169
|
-
file_set_invoice = set(dfexcelinvoice["data_file_names/name"])
|
|
170
|
-
if file_set_invoice - file_set_group:
|
|
171
|
-
|
|
172
|
-
|
|
168
|
+
file_set_group = {f.name for f in excel_rawfiles}
|
|
169
|
+
file_set_invoice = set(dfexcelinvoice["data_file_names/name"])
|
|
170
|
+
if file_set_invoice - file_set_group:
|
|
171
|
+
missing = sorted(file_set_invoice - file_set_group)
|
|
172
|
+
missing_display = (str(name) for name in missing)
|
|
173
|
+
emsg = f"ERROR: raw file not found: {', '.join(missing_display)}"
|
|
174
|
+
raise StructuredError(emsg)
|
|
173
175
|
# Sort excel_rawfiles in the order they appear in the invoice
|
|
174
176
|
_tmp = {f.name: f for f in excel_rawfiles}
|
|
175
177
|
try:
|
|
@@ -1152,7 +1154,8 @@ class RuleBasedReplacer:
|
|
|
1152
1154
|
Args:
|
|
1153
1155
|
replacements (Mapping[str, Any]): The object containing mapping rules (read-only).
|
|
1154
1156
|
source_json_obj (MutableMapping[str, Any] | None): Objects of key and value to which you want to apply the rule (performs nested assignments).
|
|
1155
|
-
mapping_rules (Mapping[str, str] | None, optional): Rules for mapping key and value (read-only).
|
|
1157
|
+
mapping_rules (Mapping[str, str] | None, optional): Rules for mapping key and value (read-only).
|
|
1158
|
+
If None, uses self.rules. Defaults to None.
|
|
1156
1159
|
|
|
1157
1160
|
Returns:
|
|
1158
1161
|
dict[str, Any]: dictionary type data after conversion
|
|
@@ -1173,13 +1176,12 @@ class RuleBasedReplacer:
|
|
|
1173
1176
|
result = replacer.apply_rules(replacement_rule, save_file_path, mapping_rules = rule)
|
|
1174
1177
|
print(result)
|
|
1175
1178
|
"""
|
|
1176
|
-
# [TODO] Correction of type definitions in version 0.1.6
|
|
1177
1179
|
if mapping_rules is None:
|
|
1178
1180
|
mapping_rules = self.rules
|
|
1179
1181
|
if source_json_obj is None:
|
|
1180
1182
|
source_json_obj = {}
|
|
1181
1183
|
|
|
1182
|
-
for key, value in
|
|
1184
|
+
for key, value in mapping_rules.items():
|
|
1183
1185
|
keys = key.split(".")
|
|
1184
1186
|
replace_value = replacements.get(value, "")
|
|
1185
1187
|
current_obj: MutableMapping[str, Any] = source_json_obj
|
|
@@ -411,6 +411,7 @@ class SmartTableInvoiceInitializer(Processor):
|
|
|
411
411
|
"""Apply SmartTable row data to invoice and collect metadata updates."""
|
|
412
412
|
metadata_updates: dict[str, dict[str, Any]] = {}
|
|
413
413
|
metadata_def: dict[str, Any] | None = None
|
|
414
|
+
csv_has_sample_owner_id = False
|
|
414
415
|
|
|
415
416
|
# Handle empty CSV (no data rows)
|
|
416
417
|
if len(csv_data) == 0:
|
|
@@ -435,10 +436,50 @@ class SmartTableInvoiceInitializer(Processor):
|
|
|
435
436
|
meta_key, meta_entry = self._process_meta_mapping(col, value, metadata_def)
|
|
436
437
|
metadata_updates[meta_key] = meta_entry
|
|
437
438
|
continue
|
|
439
|
+
# Track if sample/ownerId is explicitly specified in CSV
|
|
440
|
+
if col == "sample/ownerId":
|
|
441
|
+
csv_has_sample_owner_id = True
|
|
438
442
|
self._process_mapping_key(col, value, invoice_data, invoice_schema_json_data)
|
|
439
443
|
|
|
444
|
+
# Set sample.ownerId to basic.dataOwnerId only if not specified in CSV
|
|
445
|
+
if not csv_has_sample_owner_id:
|
|
446
|
+
self._set_sample_owner_id(invoice_data)
|
|
447
|
+
|
|
440
448
|
return metadata_updates
|
|
441
449
|
|
|
450
|
+
def _set_sample_owner_id(self, invoice_data: dict[str, Any]) -> None:
|
|
451
|
+
"""Set sample.ownerId to basic.dataOwnerId for SmartTable processing.
|
|
452
|
+
|
|
453
|
+
This ensures that newly registered samples have the correct owner ID,
|
|
454
|
+
which should always be the data owner (registrant) rather than
|
|
455
|
+
any temporary sample owner selected in the invoice screen.
|
|
456
|
+
|
|
457
|
+
Args:
|
|
458
|
+
invoice_data: Invoice data dictionary to update.
|
|
459
|
+
|
|
460
|
+
Note:
|
|
461
|
+
- For new sample registration: Sets the correct owner ID
|
|
462
|
+
- For sample linking: The value is set but not used (safe to set)
|
|
463
|
+
- If basic.dataOwnerId is missing: Logs warning and preserves existing value
|
|
464
|
+
"""
|
|
465
|
+
basic_section = invoice_data.get("basic", {})
|
|
466
|
+
data_owner_id = basic_section.get("dataOwnerId")
|
|
467
|
+
|
|
468
|
+
if data_owner_id is None or data_owner_id == "":
|
|
469
|
+
logger.warning(
|
|
470
|
+
"basic.dataOwnerId is missing or empty; sample.ownerId will not be updated. "
|
|
471
|
+
"This may cause incorrect sample owner assignment.",
|
|
472
|
+
)
|
|
473
|
+
return
|
|
474
|
+
|
|
475
|
+
sample_section = invoice_data.setdefault("sample", {})
|
|
476
|
+
sample_section["ownerId"] = data_owner_id
|
|
477
|
+
|
|
478
|
+
logger.debug(
|
|
479
|
+
"Set sample.ownerId to basic.dataOwnerId: %s",
|
|
480
|
+
data_owner_id,
|
|
481
|
+
)
|
|
482
|
+
|
|
442
483
|
def _load_metadata_definition(self, metadata_def_path: Path) -> dict[str, Any]:
|
|
443
484
|
"""Load metadata definitions for SmartTable meta column processing.
|
|
444
485
|
|
|
@@ -777,6 +777,34 @@ def test_error_check_exist_rawfiles(inputfile_multi_excelinvoice):
|
|
|
777
777
|
assert str(e.value) == "ERROR: raw file not found: test_child2.txt"
|
|
778
778
|
|
|
779
779
|
|
|
780
|
+
def test_error_check_exist_rawfiles_multiple_missing(inputfile_multi_excelinvoice):
|
|
781
|
+
"""Test that check_exist_rawfiles reports ALL missing files when multiple files are absent.
|
|
782
|
+
|
|
783
|
+
This test verifies that all missing files are reported in a single error message,
|
|
784
|
+
listed in alphabetical order, and separated by ", " for clarity.
|
|
785
|
+
"""
|
|
786
|
+
# Preprocess test Excel invoice
|
|
787
|
+
df_excelinvoice = pd.read_excel(inputfile_multi_excelinvoice, sheet_name="invoice_form", dtype=str, header=None, index_col=None)
|
|
788
|
+
df = df_excelinvoice.dropna(axis=0, how="all").dropna(axis=1, how="all")
|
|
789
|
+
hd1 = list(df.iloc[1, :].fillna(""))
|
|
790
|
+
hd2 = list(df.iloc[2, :].fillna(""))
|
|
791
|
+
df.columns = [f"{s1}/{s2}" if s1 else s2 for s1, s2 in zip(hd1, hd2)]
|
|
792
|
+
df_excelinvoice = df.iloc[4:, :].reset_index(drop=True).copy()
|
|
793
|
+
|
|
794
|
+
# Test raw files - missing both test_child1.txt and test_child2.txt
|
|
795
|
+
test_excel_raw_files = [
|
|
796
|
+
Path("test_child3.txt"),
|
|
797
|
+
Path("test_child9.txt"),
|
|
798
|
+
Path("test_child10.txt"),
|
|
799
|
+
]
|
|
800
|
+
|
|
801
|
+
with pytest.raises(StructuredError) as e:
|
|
802
|
+
_ = check_exist_rawfiles(df_excelinvoice, test_excel_raw_files)
|
|
803
|
+
|
|
804
|
+
# Expected: Both missing files listed in alphabetical order, separated by ", "
|
|
805
|
+
assert str(e.value) == "ERROR: raw file not found: test_child1.txt, test_child2.txt"
|
|
806
|
+
|
|
807
|
+
|
|
780
808
|
def test_apply_magic_variable_inputfile_check(ivnoice_json_magic_filename_variable):
|
|
781
809
|
"""${filename}が置換できるかテスト
|
|
782
810
|
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
1
|
+
"""Test SmartTableInvoiceInitializer behavior with equivalence partitioning and boundary values.
|
|
2
|
+
|
|
3
|
+
Equivalence Partitioning:
|
|
3
4
|
| API | Input/State Partition | Rationale | Expected Outcome | Test ID |
|
|
4
5
|
| ------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------- | ------------- |
|
|
5
|
-
| `SmartTableInvoiceInitializer.process` | Multiple SmartTable rows with fresh processors per row | Pipelines re-instantiate processors for each row |
|
|
6
|
+
| `SmartTableInvoiceInitializer.process` | Multiple SmartTable rows with fresh processors per row | Pipelines re-instantiate processors for each row | sample.ownerId is set to basic.dataOwnerId | `TC-EP-001` |
|
|
6
7
|
| `SmartTableInvoiceInitializer.process` | Missing SmartTable row CSV in SmartTable mode | Invalid SmartTable input should be rejected | Raises `StructuredError` | `TC-EP-002` |
|
|
8
|
+
| `SmartTableInvoiceInitializer.process` | basic.dataOwnerId is missing in original invoice | Defensive handling when required field is absent | Logs warning, preserves original sample.ownerId | `TC-EP-003` |
|
|
9
|
+
| `SmartTableInvoiceInitializer.process` | SmartTable CSV contains sample/ownerId column | CSV value should take precedence when explicitly specified | sample.ownerId uses CSV value, not basic.dataOwnerId | `TC-EP-004` |
|
|
7
10
|
|
|
8
|
-
Boundary Value
|
|
11
|
+
Boundary Value:
|
|
9
12
|
| API | Boundary | Rationale | Expected Outcome | Test ID |
|
|
10
13
|
| ------------------------------------- | --------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------- | ------------- |
|
|
11
|
-
| `SmartTableInvoiceInitializer.process` | First
|
|
14
|
+
| `SmartTableInvoiceInitializer.process` | First invocation with SmartTable row | Automatic ownerId assignment from basic.dataOwnerId | sample.ownerId is set to basic.dataOwnerId | `TC-BV-001` |
|
|
12
15
|
| `SmartTableInvoiceInitializer.process` | `smarttable_file` is `None` | SmartTable mode should be enforced | Raises `ValueError` | `TC-BV-002` |
|
|
16
|
+
| `SmartTableInvoiceInitializer.process` | basic.dataOwnerId is empty string | Defensive handling when field is empty | Logs warning, preserves original sample.ownerId | `TC-BV-003` |
|
|
13
17
|
"""
|
|
14
18
|
|
|
15
19
|
from __future__ import annotations
|
|
@@ -17,6 +21,7 @@ from __future__ import annotations
|
|
|
17
21
|
import csv
|
|
18
22
|
import json
|
|
19
23
|
import shutil
|
|
24
|
+
from collections.abc import Generator
|
|
20
25
|
from pathlib import Path
|
|
21
26
|
|
|
22
27
|
import pytest
|
|
@@ -32,7 +37,7 @@ from rdetoolkit.processing.processors.invoice import SmartTableInvoiceInitialize
|
|
|
32
37
|
|
|
33
38
|
|
|
34
39
|
@pytest.fixture(autouse=True)
|
|
35
|
-
def reset_initializer_cache() -> None:
|
|
40
|
+
def reset_initializer_cache() -> Generator[None, None, None]:
|
|
36
41
|
"""Ensure SmartTable initializer cache isolation per test."""
|
|
37
42
|
SmartTableInvoiceInitializer._BASE_INVOICE_CACHE.clear()
|
|
38
43
|
yield
|
|
@@ -93,9 +98,12 @@ def _build_resource_paths(
|
|
|
93
98
|
|
|
94
99
|
|
|
95
100
|
def test_smarttable_invoice_initializer_preserves_owner_id_after_source_mutation__tc_ep_001(tmp_path: Path) -> None:
|
|
101
|
+
"""TC-EP-001: Multiple SmartTable rows with fresh processors per row preserve basic.dataOwnerId."""
|
|
96
102
|
# Given: two SmartTable rows and an original invoice containing ownerId
|
|
97
103
|
invoice_org, schema_path = _copy_sample_invoice_files(tmp_path)
|
|
98
|
-
|
|
104
|
+
original_invoice = json.loads(invoice_org.read_text())
|
|
105
|
+
# ownerId should be set from basic.dataOwnerId, not sample.ownerId
|
|
106
|
+
expected_owner_id = original_invoice["basic"]["dataOwnerId"]
|
|
99
107
|
smarttable_file = tmp_path / "inputdata" / "smarttable_sample.xlsx"
|
|
100
108
|
smarttable_file.parent.mkdir(parents=True, exist_ok=True)
|
|
101
109
|
smarttable_file.touch()
|
|
@@ -149,14 +157,17 @@ def test_smarttable_invoice_initializer_preserves_owner_id_after_source_mutation
|
|
|
149
157
|
|
|
150
158
|
output_invoice = json.loads((divided_invoice_dir / "invoice.json").read_text())
|
|
151
159
|
|
|
152
|
-
# Then:
|
|
160
|
+
# Then: sample.ownerId is set to basic.dataOwnerId
|
|
153
161
|
assert output_invoice["sample"]["ownerId"] == expected_owner_id
|
|
154
162
|
|
|
155
163
|
|
|
156
|
-
def
|
|
164
|
+
def test_smarttable_invoice_initializer_sets_owner_id_from_data_owner__tc_bv_001(tmp_path: Path) -> None:
|
|
165
|
+
"""TC-BV-001: First invocation with SmartTable row sets sample.ownerId from basic.dataOwnerId."""
|
|
157
166
|
# Given: a SmartTable row without ownerId override
|
|
158
167
|
invoice_org, schema_path = _copy_sample_invoice_files(tmp_path)
|
|
159
|
-
|
|
168
|
+
original_invoice = json.loads(invoice_org.read_text())
|
|
169
|
+
# ownerId should be set from basic.dataOwnerId
|
|
170
|
+
expected_owner_id = original_invoice["basic"]["dataOwnerId"]
|
|
160
171
|
smarttable_file = tmp_path / "inputdata" / "smarttable_sample.xlsx"
|
|
161
172
|
smarttable_file.parent.mkdir(parents=True, exist_ok=True)
|
|
162
173
|
smarttable_file.touch()
|
|
@@ -188,11 +199,12 @@ def test_smarttable_invoice_initializer_uses_base_owner_on_first_invocation__tc_
|
|
|
188
199
|
initializer.process(context)
|
|
189
200
|
output_invoice = json.loads((invoice_org.parent / "invoice.json").read_text())
|
|
190
201
|
|
|
191
|
-
# Then: ownerId
|
|
202
|
+
# Then: ownerId is set to basic.dataOwnerId
|
|
192
203
|
assert output_invoice["sample"]["ownerId"] == expected_owner_id
|
|
193
204
|
|
|
194
205
|
|
|
195
206
|
def test_smarttable_invoice_initializer_requires_row_csv__tc_ep_002(tmp_path: Path) -> None:
|
|
207
|
+
"""TC-EP-002: Missing SmartTable row CSV in SmartTable mode raises StructuredError."""
|
|
196
208
|
# Given: SmartTable mode without a generated row CSV
|
|
197
209
|
invoice_org, schema_path = _copy_sample_invoice_files(tmp_path)
|
|
198
210
|
smarttable_file = tmp_path / "inputdata" / "smarttable_sample.xlsx"
|
|
@@ -225,6 +237,7 @@ def test_smarttable_invoice_initializer_requires_row_csv__tc_ep_002(tmp_path: Pa
|
|
|
225
237
|
|
|
226
238
|
|
|
227
239
|
def test_smarttable_invoice_initializer_requires_smarttable_mode__tc_bv_002(tmp_path: Path) -> None:
|
|
240
|
+
"""TC-BV-002: smarttable_file is None raises ValueError."""
|
|
228
241
|
# Given: SmartTable initializer invoked without smarttable mode enabled
|
|
229
242
|
invoice_org, schema_path = _copy_sample_invoice_files(tmp_path)
|
|
230
243
|
row0 = tmp_path / "temp" / "fsmarttable_case_0000.csv"
|
|
@@ -253,3 +266,149 @@ def test_smarttable_invoice_initializer_requires_smarttable_mode__tc_bv_002(tmp_
|
|
|
253
266
|
# When/Then: SmartTable processing rejects contexts without smarttable_file
|
|
254
267
|
with pytest.raises(ValueError, match="SmartTable file not provided"):
|
|
255
268
|
initializer.process(context)
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
def test_smarttable_invoice_initializer_warns_when_data_owner_id_missing__tc_ep_003(tmp_path: Path, caplog: pytest.LogCaptureFixture) -> None:
|
|
272
|
+
"""TC-EP-003: basic.dataOwnerId missing logs warning and preserves original sample.ownerId."""
|
|
273
|
+
# Given: an original invoice without basic.dataOwnerId
|
|
274
|
+
invoice_org, schema_path = _copy_sample_invoice_files(tmp_path)
|
|
275
|
+
original_invoice = json.loads(invoice_org.read_text())
|
|
276
|
+
original_sample_owner_id = original_invoice["sample"]["ownerId"]
|
|
277
|
+
|
|
278
|
+
# Remove dataOwnerId to simulate missing value
|
|
279
|
+
del original_invoice["basic"]["dataOwnerId"]
|
|
280
|
+
invoice_org.write_text(json.dumps(original_invoice))
|
|
281
|
+
|
|
282
|
+
smarttable_file = tmp_path / "inputdata" / "smarttable_sample.xlsx"
|
|
283
|
+
smarttable_file.parent.mkdir(parents=True, exist_ok=True)
|
|
284
|
+
smarttable_file.touch()
|
|
285
|
+
|
|
286
|
+
row0 = tmp_path / "temp" / "fsmarttable_case_0000.csv"
|
|
287
|
+
_write_smarttable_row(row0, {"sample/names": "sample-one"})
|
|
288
|
+
|
|
289
|
+
srcpaths = RdeInputDirPaths(
|
|
290
|
+
inputdata=smarttable_file.parent,
|
|
291
|
+
invoice=invoice_org.parent,
|
|
292
|
+
tasksupport=schema_path.parent,
|
|
293
|
+
config=create_default_config(),
|
|
294
|
+
)
|
|
295
|
+
initializer = SmartTableInvoiceInitializer()
|
|
296
|
+
|
|
297
|
+
resource_paths = _build_resource_paths(
|
|
298
|
+
tmp_path, invoice_org.parent, invoice_org, schema_path, row0,
|
|
299
|
+
)
|
|
300
|
+
context = ProcessingContext(
|
|
301
|
+
index="0",
|
|
302
|
+
srcpaths=srcpaths,
|
|
303
|
+
resource_paths=resource_paths,
|
|
304
|
+
datasets_function=None,
|
|
305
|
+
mode_name="smarttable",
|
|
306
|
+
smarttable_file=smarttable_file,
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
# When: processing with missing basic.dataOwnerId
|
|
310
|
+
with caplog.at_level("WARNING"):
|
|
311
|
+
initializer.process(context)
|
|
312
|
+
|
|
313
|
+
output_invoice = json.loads((invoice_org.parent / "invoice.json").read_text())
|
|
314
|
+
|
|
315
|
+
# Then: warning is logged and sample.ownerId is preserved from original
|
|
316
|
+
assert "basic.dataOwnerId is missing or empty" in caplog.text
|
|
317
|
+
assert output_invoice["sample"]["ownerId"] == original_sample_owner_id
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
def test_smarttable_invoice_initializer_warns_when_data_owner_id_empty__tc_bv_003(tmp_path: Path, caplog: pytest.LogCaptureFixture) -> None:
|
|
321
|
+
"""TC-BV-003: basic.dataOwnerId empty string logs warning and preserves original sample.ownerId."""
|
|
322
|
+
# Given: an original invoice with empty basic.dataOwnerId
|
|
323
|
+
invoice_org, schema_path = _copy_sample_invoice_files(tmp_path)
|
|
324
|
+
original_invoice = json.loads(invoice_org.read_text())
|
|
325
|
+
original_sample_owner_id = original_invoice["sample"]["ownerId"]
|
|
326
|
+
|
|
327
|
+
# Set dataOwnerId to empty string
|
|
328
|
+
original_invoice["basic"]["dataOwnerId"] = ""
|
|
329
|
+
invoice_org.write_text(json.dumps(original_invoice))
|
|
330
|
+
|
|
331
|
+
smarttable_file = tmp_path / "inputdata" / "smarttable_sample.xlsx"
|
|
332
|
+
smarttable_file.parent.mkdir(parents=True, exist_ok=True)
|
|
333
|
+
smarttable_file.touch()
|
|
334
|
+
|
|
335
|
+
row0 = tmp_path / "temp" / "fsmarttable_case_0000.csv"
|
|
336
|
+
_write_smarttable_row(row0, {"sample/names": "sample-one"})
|
|
337
|
+
|
|
338
|
+
srcpaths = RdeInputDirPaths(
|
|
339
|
+
inputdata=smarttable_file.parent,
|
|
340
|
+
invoice=invoice_org.parent,
|
|
341
|
+
tasksupport=schema_path.parent,
|
|
342
|
+
config=create_default_config(),
|
|
343
|
+
)
|
|
344
|
+
initializer = SmartTableInvoiceInitializer()
|
|
345
|
+
|
|
346
|
+
resource_paths = _build_resource_paths(
|
|
347
|
+
tmp_path, invoice_org.parent, invoice_org, schema_path, row0,
|
|
348
|
+
)
|
|
349
|
+
context = ProcessingContext(
|
|
350
|
+
index="0",
|
|
351
|
+
srcpaths=srcpaths,
|
|
352
|
+
resource_paths=resource_paths,
|
|
353
|
+
datasets_function=None,
|
|
354
|
+
mode_name="smarttable",
|
|
355
|
+
smarttable_file=smarttable_file,
|
|
356
|
+
)
|
|
357
|
+
|
|
358
|
+
# When: processing with empty basic.dataOwnerId
|
|
359
|
+
with caplog.at_level("WARNING"):
|
|
360
|
+
initializer.process(context)
|
|
361
|
+
|
|
362
|
+
output_invoice = json.loads((invoice_org.parent / "invoice.json").read_text())
|
|
363
|
+
|
|
364
|
+
# Then: warning is logged and sample.ownerId is preserved from original
|
|
365
|
+
assert "basic.dataOwnerId is missing or empty" in caplog.text
|
|
366
|
+
assert output_invoice["sample"]["ownerId"] == original_sample_owner_id
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
def test_smarttable_invoice_initializer_uses_csv_owner_id_when_specified__tc_ep_004(tmp_path: Path) -> None:
|
|
370
|
+
"""TC-EP-004: SmartTable CSV sample/ownerId takes precedence over basic.dataOwnerId."""
|
|
371
|
+
# Given: SmartTable row with sample/ownerId column explicitly specified
|
|
372
|
+
invoice_org, schema_path = _copy_sample_invoice_files(tmp_path)
|
|
373
|
+
original_invoice = json.loads(invoice_org.read_text())
|
|
374
|
+
data_owner_id = original_invoice["basic"]["dataOwnerId"]
|
|
375
|
+
|
|
376
|
+
smarttable_file = tmp_path / "inputdata" / "smarttable_sample.xlsx"
|
|
377
|
+
smarttable_file.parent.mkdir(parents=True, exist_ok=True)
|
|
378
|
+
smarttable_file.touch()
|
|
379
|
+
|
|
380
|
+
# SmartTable CSV includes sample/ownerId column with different value
|
|
381
|
+
csv_owner_id = "DifferentOwnerIdFromCSVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
382
|
+
row0 = tmp_path / "temp" / "fsmarttable_case_0000.csv"
|
|
383
|
+
_write_smarttable_row(row0, {
|
|
384
|
+
"sample/names": "sample-one",
|
|
385
|
+
"sample/ownerId": csv_owner_id,
|
|
386
|
+
})
|
|
387
|
+
|
|
388
|
+
srcpaths = RdeInputDirPaths(
|
|
389
|
+
inputdata=smarttable_file.parent,
|
|
390
|
+
invoice=invoice_org.parent,
|
|
391
|
+
tasksupport=schema_path.parent,
|
|
392
|
+
config=create_default_config(),
|
|
393
|
+
)
|
|
394
|
+
initializer = SmartTableInvoiceInitializer()
|
|
395
|
+
|
|
396
|
+
resource_paths = _build_resource_paths(
|
|
397
|
+
tmp_path, invoice_org.parent, invoice_org, schema_path, row0,
|
|
398
|
+
)
|
|
399
|
+
context = ProcessingContext(
|
|
400
|
+
index="0",
|
|
401
|
+
srcpaths=srcpaths,
|
|
402
|
+
resource_paths=resource_paths,
|
|
403
|
+
datasets_function=None,
|
|
404
|
+
mode_name="smarttable",
|
|
405
|
+
smarttable_file=smarttable_file,
|
|
406
|
+
)
|
|
407
|
+
|
|
408
|
+
# When: processing with both CSV ownerId and basic.dataOwnerId
|
|
409
|
+
initializer.process(context)
|
|
410
|
+
output_invoice = json.loads((invoice_org.parent / "invoice.json").read_text())
|
|
411
|
+
|
|
412
|
+
# Then: CSV value takes precedence over basic.dataOwnerId
|
|
413
|
+
assert output_invoice["sample"]["ownerId"] == csv_owner_id
|
|
414
|
+
assert output_invoice["sample"]["ownerId"] != data_owner_id
|