csvpath 0.0.609__tar.gz → 0.0.613__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.
- {csvpath-0.0.609 → csvpath-0.0.613}/PKG-INFO +1 -1
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/.DS_Store +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/config.ini +1 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-azure.ini +1 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-filesystem-mysql.ini +1 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-gcs.ini +4 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-s3.ini +4 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-sftp.ini +4 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-windows-azure.ini +1 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-windows-gcs.ini +1 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-windows-local.ini +1 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-windows-s3.ini +1 -0
- csvpath-0.0.613/assets/config/jenkins-windows-sftp.ini +114 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/config/config.ini +4 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/csvpath.py +26 -15
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/csvpaths.py +91 -17
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_describer.py +39 -1
- csvpath-0.0.613/csvpath/managers/files/file_descriptor.py +70 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_manager.py +199 -53
- csvpath-0.0.613/csvpath/managers/files/file_names_rules.py +24 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/files_listener.py +3 -4
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/lines_and_headers_cacher.py +9 -4
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/webhook/webhook_listener.py +7 -1
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_describer.py +41 -42
- csvpath-0.0.613/csvpath/managers/paths/paths_descriptor.py +93 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_listener.py +4 -6
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_manager.py +4 -2
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result_registrar.py +1 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result_serializer.py +60 -6
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/results_manager.py +26 -139
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/results_metadata.py +17 -1
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/results_registrar.py +32 -6
- csvpath-0.0.613/csvpath/managers/results/transfers_manager.py +316 -0
- csvpath-0.0.613/csvpath/managers/server_config.py +22 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/function_factory.py +11 -0
- csvpath-0.0.613/csvpath/matching/functions/misc/env.py +35 -0
- csvpath-0.0.613/csvpath/matching/functions/misc/metadata.py +37 -0
- csvpath-0.0.613/csvpath/matching/functions/misc/runtime.py +36 -0
- csvpath-0.0.613/csvpath/matching/functions/sql/select.py +136 -0
- csvpath-0.0.613/csvpath/matching/functions/types/__init__.py +12 -0
- csvpath-0.0.613/csvpath/matching/functions/types/uuid.py +56 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/line.py +3 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/pushpop.py +10 -8
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/qualified.py +19 -4
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/runtime_data_collector.py +132 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/print_mode.py +14 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/scanning/scanner2.py +63 -9
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_data_writer.py +0 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_utils.py +1 -1
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/box.py +3 -1
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/cache.py +11 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/config.py +2 -2
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/config_env.py +20 -21
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/date_util.py +0 -7
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/http/http_data_reader.py +8 -13
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/nos.py +42 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/path_util.py +11 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_manifest_entry_finder.py +10 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_results.py +16 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/run_home_maker.py +12 -3
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_data_reader.py +117 -50
- csvpath-0.0.613/csvpath/util/sftp/sftp_data_writer.py +95 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_nos.py +21 -18
- csvpath-0.0.613/csvpath/util/sftp/sftp_server_creds.py +38 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/template_util.py +52 -1
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/var_utility.py +14 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/xlsx/xlsx_reader_helper.py +17 -2
- {csvpath-0.0.609 → csvpath-0.0.613}/pyproject.toml +1 -1
- csvpath-0.0.609/assets/config/jenkins-windows-sftp.ini +0 -157
- csvpath-0.0.609/csvpath/managers/integrations/sftpplus/arrival_handler.py +0 -108
- csvpath-0.0.609/csvpath/managers/integrations/sftpplus/rpc.py +0 -97
- csvpath-0.0.609/csvpath/managers/integrations/sftpplus/sftpplus_listener.py +0 -229
- csvpath-0.0.609/csvpath/managers/integrations/sftpplus/transfer_creator.py +0 -268
- csvpath-0.0.609/csvpath/managers/integrations/sftpplus/transfers.py +0 -53
- csvpath-0.0.609/csvpath/matching/functions/types/__init__.py +0 -11
- csvpath-0.0.609/csvpath/util/sftp/sftp_data_writer.py +0 -65
- {csvpath-0.0.609 → csvpath-0.0.613}/LICENSE +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/README.md +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/extra-functions.imports +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/function.imports +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/.DS_Store +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/Mac.goenvironment.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/Windows.goenvironment.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/azure-pipeline.gopipeline.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/azure.sh +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/gcs.sh +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/google-pipeline.gopipeline.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/local-pipeline.gopipeline copy.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/local.sh +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/s3-pipeline.gopipeline.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/s3.sh +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/sftp-pipeline.gopipeline.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/sftp.sh +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/azure.bat +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/gcs.bat +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/local.bat +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/s3.bat +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/sftp.bat +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-azure.gopipeline.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-gcs.gopipeline.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-local.gopipeline.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-s3.gopipeline.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-sftp.gopipeline.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/.DS_Store +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_auto_arrival.bat +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_auto_arrival.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_auto_arrival.sh +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_mailbox_arrival.bat +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_mailbox_arrival.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_mailbox_arrival.sh +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sqlite/csvpath +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sqlite/schema.sql +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.25-py3-none-any.whl +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.27-py3-none-any.whl +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.28-py3-none-any.whl +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.29-py3-none-any.whl +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.30.tar.gz +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.31.tar.gz +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.33.tar.gz +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.34.tar.gz +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.35.tar.gz +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/config/env.json +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/__init__.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/__init__.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/asker.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/cli.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/const.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/debug_config.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/drill_down.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/function_describer.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/function_lister.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/selecter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/__init__.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/errors/error.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/errors/error_collector.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/errors/error_comms.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/errors/error_manager.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_activator.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_metadata.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_registrar.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/files_activation_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ckan/ckan.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ckan/ckan_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ckan/datafile.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ckan/dataset.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/event.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/event_result.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/file_listener_ol.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/job.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/ol_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/paths_listener_ol.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/result_listener_ol.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/results_listener_ol.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/run.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/run_listener_ol.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/run_state.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/sender.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/error_metrics.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/metrics.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_error_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_file_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_paths_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_result_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_results_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/scripts/scripts_results_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sftp/sftp_sender.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/slack/event.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/slack/sender.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/engine.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_file_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_paths_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_result_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_results_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/tables.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/updates.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sqlite/schema.sql +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sqlite/sqlite_result_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sqlite/sqlite_results_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/webhook/webhook_results_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/metadata.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_metadata.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_registrar.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/registrar.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/file_errors_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/file_lines_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/file_printouts_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/file_unmatched_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/readers.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result_file_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result_metadata.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/run/run_listener_stdout.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/run/run_metadata.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/run/run_registrar.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/test_listener.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/__init__.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/__init__.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/args.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/args_helper.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/all.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/andf.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/any.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/between.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/empty.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/exists.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/inf.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/no.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/notf.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/orf.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/yes.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count_bytes.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count_headers.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count_lines.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count_scans.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/counter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/every.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/has_matches.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/increment.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/tally.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/total_lines.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/dates/now.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/dates/part.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/dates/roll.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/function.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/function_finder.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/function_focus.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/append.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/collect.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/empty_stack.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/end.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/header_name.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/header_names_mismatch.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/headers.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/headers_stack.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/insert.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/line_before.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/mismatch.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/remove.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/rename.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/replace.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/reset_headers.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/json/jsonpath.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/advance.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/after_blank.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/dups.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/first.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/first_line.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/last.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/stop.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/above.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/add.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/divide.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/equals.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/intf.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/mod.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/multiply.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/odd.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/round.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/subtotal.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/subtract.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/sum.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/misc/fingerprint.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/misc/importf.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/misc/parquet.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/misc/random.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/jinjaf.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/print_line.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/print_queue.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/printf.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/table.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/sql/sql_in.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/minf.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/nminmax.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/percent.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/percent_unique.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/stdev.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/alter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/caps.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/concat.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/contains.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/format.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/length.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/lower.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/metaphone.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/regex.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/starts_with.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/strip.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/substring.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/upper.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/testing/debug.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/blank.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/boolean.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/datatype.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/datef.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/decimal.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/email.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/nonef.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/string.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/type.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/url.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/wildcard.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/fail.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/failed.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/matches.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/percent_matching.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/clear.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/get.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/index_of.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/put.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/slice.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/sort.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/track.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/variables.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/xml/xpath.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/lark_parser.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/lark_transformer.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/matcher.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/__init__.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/equality.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/expression.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/header.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/matchable.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/reference.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/term.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/variable.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/exceptions.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/expression_encoder.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/expression_utility.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/lark_print_parser.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/parquet_utility.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/print_parser.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/error_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/explain_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/files_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/logic_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/mode_controller.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/return_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/run_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/source_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/transfer_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/unmatched_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/validation_mode.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/scanning/__init__.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/scanning/scanner2_parser.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/scanning/scanner2_transformer.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_fingerprinter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_json_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_nos.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_timing_policy.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_xlsx_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/backend_check.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/caser.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/class_loader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/code.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/config_exception.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/exceptions.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/file_info.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/file_readers.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/file_utility.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/file_writers.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_data_writer.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_fingerprinter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_json_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_nos.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_utils.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_xlsx_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/hasher.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/intermediary.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/json/json_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/json/json_reader_helper.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/last_line_stats.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/line_counter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/line_monitor.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/line_spooler.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/log_utility.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/metadata_parser.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/pandas_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/printer.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/py_file_utility.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/files_reference_finder_2.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/files_tools/fingerprint_finder.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/files_tools/range_finder.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/ref_utils.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_exceptions.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_grammar.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_parser.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_transformer.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_reference_finder_2.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/data_finder.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/date_filter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/identity_finder.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/path_filter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/resolve_possibles.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/token_filters.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/yesterday_or_today_translator.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/tools/date_completer.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/referrer_printer.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_data_writer.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_fingerprinter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_json_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_nos.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_utils.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_xlsx_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_config.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_fingerprinter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_json_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_walk.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_xlsx_data_reader.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sqliter.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/stopwatch.py +0 -0
- {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/xlsx/xlsx_data_reader.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: csvpath
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.613
|
|
4
4
|
Summary: CsvPath Framework is a data preboarding automation library for receiving, validating, and tracking CSV, Excel, JSONL and other tabular data files before they can corrupt downstream data consumers.
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Author: David Kershaw
|
|
Binary file
|
|
@@ -31,10 +31,11 @@ path = cache
|
|
|
31
31
|
use_cache = no
|
|
32
32
|
|
|
33
33
|
[functions]
|
|
34
|
-
imports =
|
|
34
|
+
imports =
|
|
35
35
|
|
|
36
36
|
[results]
|
|
37
37
|
archive = tmp/gcs/archive
|
|
38
|
+
transfers = tmp/gcs/transfers
|
|
38
39
|
|
|
39
40
|
[inputs]
|
|
40
41
|
files = gs://csvpath-testing-1/mac/inputs/named_files
|
|
@@ -90,7 +91,7 @@ port = SFTPPLUS_PORT
|
|
|
90
91
|
admin_username = SFTPPLUS_ADMIN_USERNAME
|
|
91
92
|
admin_password = SFTPPLUS_ADMIN_PASSWORD
|
|
92
93
|
api_url = https://. . . :10020/json
|
|
93
|
-
scripts_dir =
|
|
94
|
+
scripts_dir =
|
|
94
95
|
execute_timeout = 300
|
|
95
96
|
|
|
96
97
|
[ckan]
|
|
@@ -105,5 +106,5 @@ timeout = 5
|
|
|
105
106
|
verify = False
|
|
106
107
|
|
|
107
108
|
[slack]
|
|
108
|
-
webhook_url =
|
|
109
|
+
webhook_url =
|
|
109
110
|
|
|
@@ -31,10 +31,11 @@ path = cache
|
|
|
31
31
|
use_cache = no
|
|
32
32
|
|
|
33
33
|
[functions]
|
|
34
|
-
imports =
|
|
34
|
+
imports =
|
|
35
35
|
|
|
36
36
|
[results]
|
|
37
37
|
archive = tmp/s3/archive
|
|
38
|
+
transfers = tmp/s3/transfers
|
|
38
39
|
|
|
39
40
|
[inputs]
|
|
40
41
|
files = s3://csvpath-example-1/mac/inputs/named_files
|
|
@@ -90,7 +91,7 @@ port = SFTPPLUS_PORT
|
|
|
90
91
|
admin_username = SFTPPLUS_ADMIN_USERNAME
|
|
91
92
|
admin_password = SFTPPLUS_ADMIN_PASSWORD
|
|
92
93
|
api_url = https://. . . :10020/json
|
|
93
|
-
scripts_dir =
|
|
94
|
+
scripts_dir =
|
|
94
95
|
execute_timeout = 300
|
|
95
96
|
|
|
96
97
|
[ckan]
|
|
@@ -105,5 +106,5 @@ timeout = 5
|
|
|
105
106
|
verify = False
|
|
106
107
|
|
|
107
108
|
[slack]
|
|
108
|
-
webhook_url =
|
|
109
|
+
webhook_url =
|
|
109
110
|
|
|
@@ -25,10 +25,11 @@ path = cache
|
|
|
25
25
|
use_cache = no
|
|
26
26
|
|
|
27
27
|
[functions]
|
|
28
|
-
imports =
|
|
28
|
+
imports =
|
|
29
29
|
|
|
30
30
|
[results]
|
|
31
31
|
archive = tmp/sftp/archive
|
|
32
|
+
transfers = tmp/sftp/transfers
|
|
32
33
|
|
|
33
34
|
[inputs]
|
|
34
35
|
files = sftp://{SFTP_SERVER}:{SFTP_PORT}/mac/inputs/named_files
|
|
@@ -94,7 +95,7 @@ port = SFTPPLUS_PORT
|
|
|
94
95
|
admin_username = SFTPPLUS_ADMIN_USERNAME
|
|
95
96
|
admin_password = SFTPPLUS_ADMIN_PASSWORD
|
|
96
97
|
api_url = https://. . . :10020/json
|
|
97
|
-
scripts_dir =
|
|
98
|
+
scripts_dir =
|
|
98
99
|
execute_timeout = 300
|
|
99
100
|
|
|
100
101
|
[ckan]
|
|
@@ -109,5 +110,5 @@ timeout = 5
|
|
|
109
110
|
verify = False
|
|
110
111
|
|
|
111
112
|
[slack]
|
|
112
|
-
webhook_url =
|
|
113
|
+
webhook_url =
|
|
113
114
|
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
[testing]
|
|
2
|
+
azure.skip = yes
|
|
3
|
+
gcs.skip = yes
|
|
4
|
+
s3.skip = yes
|
|
5
|
+
sftp.skip = no
|
|
6
|
+
|
|
7
|
+
[extensions]
|
|
8
|
+
csvpath_files = csvpath, csvpaths
|
|
9
|
+
csv_files = csv, tsv, dat, tab, psv, ssv
|
|
10
|
+
|
|
11
|
+
[errors]
|
|
12
|
+
csvpath = raise, collect, print
|
|
13
|
+
csvpaths = raise, collect, print
|
|
14
|
+
use_format = full
|
|
15
|
+
pattern = {time}:{file}:{line}:{paths}:{instance}:{chain}: {message}
|
|
16
|
+
|
|
17
|
+
[logging]
|
|
18
|
+
csvpath = info
|
|
19
|
+
csvpaths = debug
|
|
20
|
+
log_file = logs\csvpath.log
|
|
21
|
+
log_files_to_keep = 100
|
|
22
|
+
log_file_size = 52428800
|
|
23
|
+
handler = file
|
|
24
|
+
|
|
25
|
+
[config]
|
|
26
|
+
path = assets\config\jenkins-windows-sftp.ini
|
|
27
|
+
allow_var_sub = True
|
|
28
|
+
var_sub_source = env
|
|
29
|
+
|
|
30
|
+
[cache]
|
|
31
|
+
path = cache
|
|
32
|
+
use_cache = no
|
|
33
|
+
|
|
34
|
+
[functions]
|
|
35
|
+
imports =
|
|
36
|
+
|
|
37
|
+
[results]
|
|
38
|
+
archive = tmp\sftp\archive
|
|
39
|
+
transfers = tmp\sftp\transfers
|
|
40
|
+
|
|
41
|
+
[inputs]
|
|
42
|
+
files = sftp://{SFTP_SERVER}:{SFTP_PORT}/windows/inputs/named_files
|
|
43
|
+
csvpaths = tmp\sftp\inputs\named_paths
|
|
44
|
+
on_unmatched_file_fingerprints = halt
|
|
45
|
+
allow_http_files = True
|
|
46
|
+
allow_local_files = True
|
|
47
|
+
|
|
48
|
+
[listeners]
|
|
49
|
+
groups = default
|
|
50
|
+
sqlite.result = from csvpath.managers.integrations.sqlite.sqlite_result_listener import SqliteResultListener
|
|
51
|
+
sqlite.results = from csvpath.managers.integrations.sqlite.sqlite_results_listener import SqliteResultsListener
|
|
52
|
+
default.file = from csvpath.managers.files.files_listener import FilesListener
|
|
53
|
+
default.paths = from csvpath.managers.paths.paths_listener import PathsListener
|
|
54
|
+
otlp.result = from csvpath.managers.integrations.otlp.otlp_result_listener import OpenTelemetryResultListener
|
|
55
|
+
otlp.results = from csvpath.managers.integrations.otlp.otlp_results_listener import OpenTelemetryResultsListener
|
|
56
|
+
otlp.errors = from csvpath.managers.integrations.otlp.otlp_error_listener import OpenTelemetryErrorListener
|
|
57
|
+
sftpplus.paths = from csvpath.managers.integrations.sftpplus.sftpplus_listener import SftpPlusListener
|
|
58
|
+
sftp.results = from csvpath.managers.integrations.sftp.sftp_listener import SftpListener
|
|
59
|
+
ckan.results = from csvpath.managers.integrations.ckan.ckan_listener import CkanListener
|
|
60
|
+
openlineage.file = from csvpath.managers.integrations.ol.file_listener_ol import OpenLineageFileListener
|
|
61
|
+
openlineage.paths = from csvpath.managers.integrations.ol.paths_listener_ol import OpenLineagePathsListener
|
|
62
|
+
openlineage.result = from csvpath.managers.integrations.ol.result_listener_ol import OpenLineageResultListener
|
|
63
|
+
openlineage.results = from csvpath.managers.integrations.ol.results_listener_ol import OpenLineageResultsListener
|
|
64
|
+
slack.file = from csvpath.managers.integrations.slack.sender import SlackSender
|
|
65
|
+
slack.paths = from csvpath.managers.integrations.slack.sender import SlackSender
|
|
66
|
+
slack.result = from csvpath.managers.integrations.slack.sender import SlackSender
|
|
67
|
+
slack.results = from csvpath.managers.integrations.slack.sender import SlackSender
|
|
68
|
+
scripts.results = from csvpath.managers.integrations.scripts.scripts_results_listener import ScriptsResultsListener
|
|
69
|
+
|
|
70
|
+
[otlp]
|
|
71
|
+
|
|
72
|
+
[aws]
|
|
73
|
+
|
|
74
|
+
[azure]
|
|
75
|
+
|
|
76
|
+
[gcs]
|
|
77
|
+
|
|
78
|
+
[sftp]
|
|
79
|
+
server = SFTP_SERVER
|
|
80
|
+
port = SFTP_PORT
|
|
81
|
+
username = python
|
|
82
|
+
password = hangzhou
|
|
83
|
+
|
|
84
|
+
[sqlite]
|
|
85
|
+
db = archive\csvpath.db
|
|
86
|
+
|
|
87
|
+
[sftpplus]
|
|
88
|
+
mailbox_user = MAILBOX_USER
|
|
89
|
+
mailbox_password = MAILBOX_PASSWORD
|
|
90
|
+
server = SFTPPLUS_SERVER
|
|
91
|
+
port = SFTPPLUS_PORT
|
|
92
|
+
admin_username = SFTPPLUS_ADMIN_USERNAME
|
|
93
|
+
admin_password = SFTPPLUS_ADMIN_PASSWORD
|
|
94
|
+
api_url = https://. . . :10020/json
|
|
95
|
+
scripts_dir =
|
|
96
|
+
execute_timeout = 300
|
|
97
|
+
|
|
98
|
+
[ckan]
|
|
99
|
+
server = http://. . . :80
|
|
100
|
+
api_token = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3akJwc1ZuSkVrZm1aNnBtVTJfTW5CNlJXZ211YjdOOHVXZ1l1cUFDa0Q4IiwiaWF0IjoxNzM0NzE4NDQ3fQ.QXWXoJoSxVES4NwXYBteYUD7enX9D5T2htmETLGFzrs
|
|
101
|
+
|
|
102
|
+
[scripts]
|
|
103
|
+
run_scripts = yes
|
|
104
|
+
|
|
105
|
+
[openlineage]
|
|
106
|
+
base_url = http://. . . :5000
|
|
107
|
+
endpoint = api/v1/lineage
|
|
108
|
+
api_key = "none"
|
|
109
|
+
timeout = 5
|
|
110
|
+
verify = False
|
|
111
|
+
|
|
112
|
+
[slack]
|
|
113
|
+
webhook_url =
|
|
114
|
+
|
|
@@ -35,10 +35,11 @@ path = cache
|
|
|
35
35
|
use_cache = yes
|
|
36
36
|
|
|
37
37
|
[functions]
|
|
38
|
-
imports =
|
|
38
|
+
imports =
|
|
39
39
|
|
|
40
40
|
[results]
|
|
41
41
|
archive = tmp/local/archive
|
|
42
|
+
transfers = tmp/transfers
|
|
42
43
|
|
|
43
44
|
[inputs]
|
|
44
45
|
files = tmp/local/inputs/named_files
|
|
@@ -105,7 +106,7 @@ port = SFTPPLUS_PORT
|
|
|
105
106
|
admin_username = SFTPPLUS_ADMIN_USERNAME
|
|
106
107
|
admin_password = SFTPPLUS_ADMIN_PASSWORD
|
|
107
108
|
api_url = https://. . . :10020/json
|
|
108
|
-
scripts_dir =
|
|
109
|
+
scripts_dir =
|
|
109
110
|
execute_timeout = 300
|
|
110
111
|
|
|
111
112
|
[ckan]
|
|
@@ -120,7 +121,7 @@ timeout = 5
|
|
|
120
121
|
verify = False
|
|
121
122
|
|
|
122
123
|
[slack]
|
|
123
|
-
webhook_url =
|
|
124
|
+
webhook_url =
|
|
124
125
|
|
|
125
126
|
[scripts]
|
|
126
127
|
run_scripts = yes
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
1
|
+
"""CsvPath is the main class for the library. most of the magic
|
|
2
|
+
happens either here or in individual functions.""" # pylint: disable=C0302
|
|
3
3
|
|
|
4
4
|
import time
|
|
5
5
|
import os
|
|
6
6
|
import hashlib
|
|
7
7
|
import traceback
|
|
8
|
-
from datetime import datetime
|
|
8
|
+
from datetime import datetime
|
|
9
9
|
from typing import List, Dict, Any, Optional, Callable
|
|
10
10
|
from collections.abc import Iterator
|
|
11
|
-
from abc import ABC, abstractmethod
|
|
12
11
|
from .util.config import Config
|
|
13
12
|
from .util.line_monitor import LineMonitor
|
|
14
13
|
from .util.log_utility import LogUtility as lout
|
|
@@ -238,7 +237,7 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
|
|
|
238
237
|
#
|
|
239
238
|
self._save_scan_dir = None
|
|
240
239
|
self._save_match_dir = None
|
|
241
|
-
self.
|
|
240
|
+
self._run_dir = None
|
|
242
241
|
#
|
|
243
242
|
# metadata is collected from "outer" csvpath comments. outer comments
|
|
244
243
|
# separate from the comments within the match part of the csvpath.
|
|
@@ -282,6 +281,14 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
|
|
|
282
281
|
self._unmatched = None
|
|
283
282
|
self._cacher = None
|
|
284
283
|
|
|
284
|
+
@property
|
|
285
|
+
def run_dir(self) -> str:
|
|
286
|
+
return self._run_dir
|
|
287
|
+
|
|
288
|
+
@run_dir.setter
|
|
289
|
+
def run_dir(self, d: str) -> None:
|
|
290
|
+
self._run_dir = d
|
|
291
|
+
|
|
285
292
|
@property
|
|
286
293
|
def logger(self):
|
|
287
294
|
if self._logger is None:
|
|
@@ -293,6 +300,8 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
|
|
|
293
300
|
self._logger = ler
|
|
294
301
|
|
|
295
302
|
def __del__(self) -> None:
|
|
303
|
+
self.csvpaths = None
|
|
304
|
+
self.matcher = None
|
|
296
305
|
try:
|
|
297
306
|
# in a test on windows 0.0.570 we see self has no error_manager attribute
|
|
298
307
|
# that is surprising since there is one ^^^^. no idea. this test is cheap tho.
|
|
@@ -303,6 +312,7 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
|
|
|
303
312
|
):
|
|
304
313
|
self.error_manager.error_metrics.provider.shutdown()
|
|
305
314
|
self.error_manager.error_metrics = None
|
|
315
|
+
self.error_manager = None
|
|
306
316
|
lout.release_logger(self)
|
|
307
317
|
except Exception:
|
|
308
318
|
print(traceback.format_exc())
|
|
@@ -586,6 +596,10 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
|
|
|
586
596
|
"""@private"""
|
|
587
597
|
return self.modes.validation_mode.collect_validation_errors
|
|
588
598
|
|
|
599
|
+
@property
|
|
600
|
+
def consolidate_printouts(self) -> bool:
|
|
601
|
+
return self.modes.print_mode.consolidate_printouts
|
|
602
|
+
|
|
589
603
|
def add_printer(self, printer) -> None: # pylint: disable=C0116
|
|
590
604
|
"""@private"""
|
|
591
605
|
if printer not in self.printers:
|
|
@@ -739,7 +753,8 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
|
|
|
739
753
|
# - run-mode: no-run | run
|
|
740
754
|
# - unmatched-mode: no-keep | keep
|
|
741
755
|
# - source-mode: preceding | origin
|
|
742
|
-
# - files-mode: all | no-data | no-unmatched | no-printouts | data
|
|
756
|
+
# - files-mode: all | no-data | no-unmatched | no-printouts | data
|
|
757
|
+
# | unmatched | errors | meta | vars | printouts
|
|
743
758
|
#
|
|
744
759
|
self.modes.update()
|
|
745
760
|
#
|
|
@@ -981,16 +996,16 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
|
|
|
981
996
|
return scan, matches
|
|
982
997
|
|
|
983
998
|
def _save_parts_if(self, scan, match):
|
|
984
|
-
if self._save_scan_dir and self.
|
|
999
|
+
if self._save_scan_dir and self._run_dir:
|
|
985
1000
|
with open(
|
|
986
|
-
os.path.join(self._save_scan_dir, f"{self.
|
|
1001
|
+
os.path.join(self._save_scan_dir, f"{self._run_dir}.txt"),
|
|
987
1002
|
"w",
|
|
988
1003
|
encoding="utf-8",
|
|
989
1004
|
) as f:
|
|
990
1005
|
f.write(scan)
|
|
991
|
-
if self._save_match_dir and self.
|
|
1006
|
+
if self._save_match_dir and self._run_dir:
|
|
992
1007
|
with open(
|
|
993
|
-
os.path.join(self._save_match_dir, f"{self.
|
|
1008
|
+
os.path.join(self._save_match_dir, f"{self._run_dir}.txt"),
|
|
994
1009
|
"w",
|
|
995
1010
|
encoding="utf-8",
|
|
996
1011
|
) as f:
|
|
@@ -1484,9 +1499,7 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
|
|
|
1484
1499
|
self.get_total_lines_and_headers()
|
|
1485
1500
|
return self.line_monitor.physical_end_line_number
|
|
1486
1501
|
|
|
1487
|
-
def get_total_lines_and_headers(
|
|
1488
|
-
self, *, filename: str = None
|
|
1489
|
-
) -> None: # pylint: disable=C0116
|
|
1502
|
+
def get_total_lines_and_headers(self, *, filename: str = None) -> None: # pylint: disable=C0116
|
|
1490
1503
|
#
|
|
1491
1504
|
# filename is an option for certain needs but in the usual case
|
|
1492
1505
|
# we expect scanner.filename, and if both are available for some
|
|
@@ -1515,10 +1528,8 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
|
|
|
1515
1528
|
f"Using cache to get total lines and headers for {filename}"
|
|
1516
1529
|
)
|
|
1517
1530
|
cacher = self.cacher
|
|
1518
|
-
print(f"cassff: {cacher}: {filename}")
|
|
1519
1531
|
self.line_monitor = cacher.get_new_line_monitor(filename)
|
|
1520
1532
|
self.headers = cacher.get_original_headers(filename)
|
|
1521
|
-
print(f"cassff: {self.line_monitor}: {self.headers}")
|
|
1522
1533
|
else:
|
|
1523
1534
|
self.logger.debug(
|
|
1524
1535
|
f"Not using cache to get total lines and headers for {filename}"
|