csvpath 0.0.573__tar.gz → 0.0.574__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.573 → csvpath-0.0.574}/PKG-INFO +2 -2
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/config.py +36 -83
- {csvpath-0.0.573 → csvpath-0.0.574}/pyproject.toml +3 -2
- {csvpath-0.0.573 → csvpath-0.0.574}/LICENSE +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/README.md +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/config.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/function.imports +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-local-azure.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-local-filesystem-mysql.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-local-gcs.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-local-s3.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-local-sftp.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-windows-azure.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-windows-gcs.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-windows-local.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-windows-s3.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/config/jenkins-windows-sftp.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/azure-pipeline.gopipeline.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/azure.sh +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/gcs-pipeline.gopipeline.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/gcs.sh +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/local-pipeline.gopipeline copy.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/local.sh +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/s3-pipeline.gopipeline.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/s3.sh +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/sftp-pipeline.gopipeline.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/mac/sftp.sh +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/azure.bat +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/gcs.bat +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/local.bat +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/s3.bat +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/sftp.bat +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/windows-azure.gopipeline.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/windows-gcs.gopipeline.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/windows-local.gopipeline.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/windows-s3.gopipeline.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/gocd/windows/windows-sftp.gopipeline.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/integrations/sftpplus/handle_auto_arrival.bat +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/integrations/sftpplus/handle_auto_arrival.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/integrations/sftpplus/handle_auto_arrival.sh +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/integrations/sftpplus/handle_mailbox_arrival.bat +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/integrations/sftpplus/handle_mailbox_arrival.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/integrations/sftpplus/handle_mailbox_arrival.sh +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/integrations/sqlite/csvpath +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/assets/integrations/sqlite/schema.sql +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/config/config.ini +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/config/env.json +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/__init__.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/cli/__init__.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/cli/asker.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/cli/cli.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/cli/const.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/cli/debug_config.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/cli/drill_down.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/cli/function_describer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/cli/function_lister.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/cli/selecter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/csvpath.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/csvpaths.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/__init__.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/errors/error.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/errors/error_collector.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/errors/error_comms.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/errors/error_manager.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/files/file_manager.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/files/file_metadata.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/files/file_registrar.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/files/files_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/files/lines_and_headers_cacher.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ckan/ckan.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ckan/ckan_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ckan/datafile.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ckan/dataset.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/event.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/event_result.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/file_listener_ol.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/job.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/ol_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/paths_listener_ol.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/result_listener_ol.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/results_listener_ol.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/run.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/run_listener_ol.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/run_state.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/ol/sender.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/error_metrics.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/metrics.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_error_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_file_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_paths_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_result_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_results_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/scripts/scripts_results_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sftp/sftp_sender.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sftpplus/arrival_handler.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sftpplus/rpc.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sftpplus/sftpplus_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sftpplus/transfer_creator.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sftpplus/transfers.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/slack/event.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/slack/sender.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/engine.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/sql_file_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/sql_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/sql_paths_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/sql_result_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/sql_results_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/tables.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/updates.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sqlite/schema.sql +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sqlite/sqlite_result_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sqlite/sqlite_results_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/webhook/webhook_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/webhook/webhook_results_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/metadata.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/paths/paths_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/paths/paths_manager.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/paths/paths_metadata.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/paths/paths_registrar.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/registrar.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/readers/file_errors_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/readers/file_lines_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/readers/file_printouts_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/readers/file_unmatched_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/readers/readers.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/result.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/result_file_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/result_metadata.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/result_registrar.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/result_serializer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/results_manager.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/results_metadata.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/results_registrar.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/run/run_listener_stdout.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/run/run_metadata.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/run/run_registrar.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/test_listener.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/__init__.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/__init__.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/args.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/args_helper.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/all.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/andf.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/any.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/between.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/empty.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/exists.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/inf.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/no.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/notf.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/orf.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/boolean/yes.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/count.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/count_bytes.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/count_headers.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/count_lines.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/count_scans.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/counter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/every.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/has_matches.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/increment.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/tally.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/counting/total_lines.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/dates/now.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/function.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/function_factory.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/function_finder.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/function_focus.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/append.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/collect.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/empty_stack.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/end.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/header_name.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/header_names_mismatch.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/headers.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/insert.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/mismatch.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/replace.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/headers/reset_headers.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/lines/advance.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/lines/after_blank.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/lines/dups.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/lines/first.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/lines/first_line.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/lines/last.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/lines/stop.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/above.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/add.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/divide.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/equals.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/intf.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/mod.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/multiply.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/odd.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/round.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/subtotal.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/subtract.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/math/sum.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/misc/fingerprint.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/misc/importf.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/misc/random.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/print/jinjaf.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/print/print_line.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/print/print_queue.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/print/printf.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/print/table.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/stats/minf.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/stats/nminmax.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/stats/percent.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/stats/percent_unique.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/stats/stdev.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/alter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/caps.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/concat.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/contains.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/length.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/lower.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/metaphone.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/regex.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/starts_with.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/strip.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/substring.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/strings/upper.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/testing/debug.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/__init__.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/boolean.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/datatype.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/datef.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/decimal.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/email.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/nonef.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/string.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/type.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/types/url.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/validity/fail.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/validity/failed.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/validity/line.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/variables/get.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/variables/pushpop.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/variables/put.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/variables/track.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/functions/variables/variables.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/lark_parser.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/lark_transformer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/matcher.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/productions/__init__.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/productions/equality.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/productions/expression.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/productions/header.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/productions/matchable.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/productions/qualified.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/productions/reference.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/productions/term.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/productions/variable.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/util/exceptions.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/util/expression_encoder.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/util/expression_utility.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/util/lark_print_parser.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/util/print_parser.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/matching/util/runtime_data_collector.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/error_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/explain_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/files_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/logic_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/mode_controller.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/print_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/return_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/run_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/source_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/transfer_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/unmatched_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/modes/validation_mode.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/scanning/__init__.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/scanning/scanner2.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/scanning/scanner2_parser.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/scanning/scanner2_transformer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/azure/azure_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/azure/azure_data_writer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/azure/azure_fingerprinter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/azure/azure_nos.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/azure/azure_utils.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/azure/azure_xlsx_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/backend_check.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/box.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/cache.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/caser.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/class_loader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/code.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/config_env.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/config_exception.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/date_util.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/exceptions.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/file_info.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/file_readers.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/file_writers.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/gcs/gcs_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/gcs/gcs_data_writer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/gcs/gcs_fingerprinter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/gcs/gcs_nos.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/gcs/gcs_utils.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/gcs/gcs_xlsx_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/hasher.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/http/http_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/intermediary.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/last_line_stats.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/line_counter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/line_monitor.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/line_spooler.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/log_utility.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/metadata_parser.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/nos.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/pandas_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/path_util.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/printer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/py_file_utility.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/files_reference_finder_2.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/files_tools/fingerprint_finder.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/files_tools/range_finder.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/ref_utils.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/reference_exceptions.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/reference_grammar.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/reference_manifest_entry_finder.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/reference_parser.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/reference_results.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/reference_transformer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/results_reference_finder_2.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/results_tools/data_finder.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/results_tools/date_filter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/results_tools/identity_finder.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/results_tools/path_filter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/results_tools/resolve_possibles.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/results_tools/token_filters.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/results_tools/yesterday_or_today_translator.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/references/tools/date_completer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/run_home_maker.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/s3/s3_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/s3/s3_data_writer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/s3/s3_fingerprinter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/s3/s3_nos.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/s3/s3_utils.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/s3/s3_xlsx_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/sftp/sftp_config.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/sftp/sftp_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/sftp/sftp_data_writer.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/sftp/sftp_fingerprinter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/sftp/sftp_nos.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/sftp/sftp_walk.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/sftp/sftp_xlsx_data_reader.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/sqliter.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/template_util.py +0 -0
- {csvpath-0.0.573 → csvpath-0.0.574}/csvpath/util/var_utility.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: csvpath
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.574
|
|
4
4
|
Summary: A data preboarding framework for ingesting, managing, and validating CSV, Excel, and other tabular data files using a Collect, Store, Validate, Publish architecture to create a trusted publisher for downstream data consumers.
|
|
5
5
|
Author: David Kershaw
|
|
6
6
|
Author-email: info@csvpath.org
|
|
@@ -44,7 +44,7 @@ Requires-Dist: pytest (>=8.3.3,<9.0.0)
|
|
|
44
44
|
Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
|
|
45
45
|
Requires-Dist: pytz (>=2024.2,<2025.0)
|
|
46
46
|
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
|
47
|
-
Requires-Dist: smart-open (>=7.1.0,<8.0.0)
|
|
47
|
+
Requires-Dist: smart-open[all] (>=7.1.0,<8.0.0)
|
|
48
48
|
Requires-Dist: sqlalchemy (>=2.0.38,<3.0.0)
|
|
49
49
|
Requires-Dist: tabulate (>=0.9.0,<0.10.0)
|
|
50
50
|
Requires-Dist: validators (>=0.34.0,<0.35.0)
|
|
@@ -224,12 +224,26 @@ verify = False
|
|
|
224
224
|
# on-invalid-slack: webhook-minus-'https://'
|
|
225
225
|
webhook_url =
|
|
226
226
|
|
|
227
|
-
[scripts]
|
|
227
|
+
[scripts]
|
|
228
228
|
run_scripts = no
|
|
229
229
|
shell = /bin/bash
|
|
230
230
|
"""
|
|
231
231
|
|
|
232
232
|
def __init__(self, *, load=True, config_env: ConfigEnv = None):
|
|
233
|
+
#
|
|
234
|
+
# when config is loaded it reads from config/config.ini. if that location says config lives
|
|
235
|
+
# somewhere else, config reloads from that place. that works fine.
|
|
236
|
+
#
|
|
237
|
+
# where I get paranoid is cycles. in principle, the second config could have a [config] path
|
|
238
|
+
# pointing back to the first, most likely "config/config.ini", which would then reload and
|
|
239
|
+
# repoint to the 2nd file in an infinite loop. if we see a small number of loops we raise an
|
|
240
|
+
# exception. it isn't airtight because you could have a lengthy chain of configs that
|
|
241
|
+
# eventually loop. but that would be a very unlikely unforced err. note that this var is no
|
|
242
|
+
# longer static and should never have been. cycles are only meaningful in a single instance.
|
|
243
|
+
# we expect one or even two cycles per instance in the usual case in any complex env, e.g. in
|
|
244
|
+
# FlightPath. if we counted all the cycles ever for all instances the number would go nuts.
|
|
245
|
+
#
|
|
246
|
+
self.config_path_cycle = 0
|
|
233
247
|
self.load = load
|
|
234
248
|
self._config_env = config_env
|
|
235
249
|
self._config = RawConfigParser()
|
|
@@ -408,7 +422,6 @@ shell = /bin/bash
|
|
|
408
422
|
#
|
|
409
423
|
# why would we not use _set(section, key, value)?
|
|
410
424
|
#
|
|
411
|
-
|
|
412
425
|
self._set(section, key, value)
|
|
413
426
|
self.refresh()
|
|
414
427
|
|
|
@@ -416,60 +429,6 @@ shell = /bin/bash
|
|
|
416
429
|
with open(self.configpath, "w", encoding="utf-8") as f:
|
|
417
430
|
self._config.write(f)
|
|
418
431
|
|
|
419
|
-
"""
|
|
420
|
-
def _create_default_config(self) -> None | str:
|
|
421
|
-
directory = ""
|
|
422
|
-
name = ""
|
|
423
|
-
if self.configpath is None or self.configpath.strip() == "":
|
|
424
|
-
raise ConfigurationException("Config path cannot be None")
|
|
425
|
-
if self.configpath.find(os.sep) > 0:
|
|
426
|
-
s = self.configpath.rfind(os.sep)
|
|
427
|
-
directory = self.configpath[0:s]
|
|
428
|
-
name = self.configpath[s + 1 :]
|
|
429
|
-
if directory != "":
|
|
430
|
-
if not path.exists(directory):
|
|
431
|
-
try:
|
|
432
|
-
os.makedirs(directory)
|
|
433
|
-
except Exception:
|
|
434
|
-
print(traceback.format_exc())
|
|
435
|
-
|
|
436
|
-
with open(self.configpath, "w", encoding="utf-8") as file:
|
|
437
|
-
file.write(Config.DEFAULT_CONFIG)
|
|
438
|
-
#
|
|
439
|
-
# writing a new config means we want to immediately load it?
|
|
440
|
-
# possibly not.
|
|
441
|
-
#
|
|
442
|
-
try:
|
|
443
|
-
self._assure_logs_path()
|
|
444
|
-
except Exception:
|
|
445
|
-
print(traceback.format_exc())
|
|
446
|
-
try:
|
|
447
|
-
self._assure_archive_path()
|
|
448
|
-
except Exception:
|
|
449
|
-
print(traceback.format_exc())
|
|
450
|
-
try:
|
|
451
|
-
self._assure_transfer_root()
|
|
452
|
-
except Exception:
|
|
453
|
-
print(traceback.format_exc())
|
|
454
|
-
try:
|
|
455
|
-
self._assure_inputs_files_path()
|
|
456
|
-
except Exception:
|
|
457
|
-
print(traceback.format_exc())
|
|
458
|
-
try:
|
|
459
|
-
self._assure_cache_path()
|
|
460
|
-
except Exception:
|
|
461
|
-
print(traceback.format_exc())
|
|
462
|
-
try:
|
|
463
|
-
self._assure_inputs_csvpaths_path()
|
|
464
|
-
except Exception:
|
|
465
|
-
print(traceback.format_exc())
|
|
466
|
-
|
|
467
|
-
print("Created a default config file at: ")
|
|
468
|
-
print(f" {os.getcwd()}{os.sep}{directory}{os.sep}{name}.")
|
|
469
|
-
print("If you want your config somewhere else remember to")
|
|
470
|
-
print("update the [config] path key in the default config.ini")
|
|
471
|
-
"""
|
|
472
|
-
|
|
473
432
|
def _create_default_config(self) -> None | str:
|
|
474
433
|
directory = ""
|
|
475
434
|
name = ""
|
|
@@ -690,16 +649,10 @@ shell = /bin/bash
|
|
|
690
649
|
return
|
|
691
650
|
self._assure_config_file_path()
|
|
692
651
|
path = self.configpath
|
|
652
|
+
print(f"Config_loadcf: path {path}")
|
|
693
653
|
self._config.read(path)
|
|
694
654
|
self.refresh()
|
|
695
655
|
|
|
696
|
-
#
|
|
697
|
-
# we hold lists and such that may need refreshing from the configparser
|
|
698
|
-
# object, if that has been updated or loaded. this method doesn't load from
|
|
699
|
-
# file, it just gathers and translates settings for external use.
|
|
700
|
-
#
|
|
701
|
-
PATH_ERR_COUNT = 0
|
|
702
|
-
|
|
703
656
|
def refresh(self) -> None:
|
|
704
657
|
#
|
|
705
658
|
# the sections: csv_files and csvpath_files are deprecated in favor of
|
|
@@ -724,31 +677,31 @@ shell = /bin/bash
|
|
|
724
677
|
# i'm not sure. puzzling.
|
|
725
678
|
#
|
|
726
679
|
path = self._get("config", "path", no_list=True)
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
if path
|
|
738
|
-
|
|
739
|
-
if path
|
|
740
|
-
|
|
741
|
-
#
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
# )
|
|
680
|
+
#
|
|
681
|
+
# maybe? here if we load from self.configpath = xyz.ini and xyz.ini has [config] path=
|
|
682
|
+
# we stay with self.configpath = xyz
|
|
683
|
+
#
|
|
684
|
+
path = path.strip().lower() if path else ""
|
|
685
|
+
#
|
|
686
|
+
# current
|
|
687
|
+
# in the current case if we load from self.configpath = xyz.ini and xyz.ini has [config] path=
|
|
688
|
+
# [config] path is set to config/config.ini and we reload, which isn't what we want.
|
|
689
|
+
#
|
|
690
|
+
# path = path.strip().lower() if path else Config.CONFIG
|
|
691
|
+
#
|
|
692
|
+
if path != "" and path != self.configpath.strip().lower():
|
|
693
|
+
self.config_path_cycle += 1
|
|
694
|
+
#
|
|
695
|
+
# see note at top of class. 3 would probably do it. but 6 is fine.
|
|
696
|
+
#
|
|
697
|
+
if self.config_path_cycle > 6:
|
|
746
698
|
raise Exception(
|
|
747
|
-
f"
|
|
699
|
+
f"Config cycle: {self.config_path_cycle}. Check [config] path {path} and {self.configpath} for cycles"
|
|
748
700
|
)
|
|
749
701
|
self.configpath = path
|
|
750
702
|
self.reload()
|
|
751
703
|
return
|
|
704
|
+
self.config_path_cycle = 0
|
|
752
705
|
self.validate_config()
|
|
753
706
|
|
|
754
707
|
def validate_config(self) -> None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "csvpath"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.574"
|
|
4
4
|
description = "A data preboarding framework for ingesting, managing, and validating CSV, Excel, and other tabular data files using a Collect, Store, Validate, Publish architecture to create a trusted publisher for downstream data consumers."
|
|
5
5
|
authors = ["David Kershaw <info@csvpath.org>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -44,7 +44,8 @@ pylightxl = "^1.61"
|
|
|
44
44
|
pytz = "^2024.2"
|
|
45
45
|
openlineage-python = "^1.25.0"
|
|
46
46
|
ckanapi = "^4.8"
|
|
47
|
-
smart-open = "^7.1.0"
|
|
47
|
+
smart-open = {extras = ["all"], version = "^7.1.0"}
|
|
48
|
+
#smart-open = "^7.1.0"
|
|
48
49
|
paramiko = "^3.5.0"
|
|
49
50
|
boto3 = "^1.35.91"
|
|
50
51
|
opentelemetry-distro = {extras = ["otlp"], version = "^0.50b0"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_error_listener.py
RENAMED
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_file_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_paths_listener.py
RENAMED
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_result_listener.py
RENAMED
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/otlp/otlp_results_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sftpplus/arrival_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sftpplus/sftpplus_listener.py
RENAMED
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sftpplus/transfer_creator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/sql_result_listener.py
RENAMED
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sql/sql_results_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sqlite/sqlite_result_listener.py
RENAMED
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/sqlite/sqlite_results_listener.py
RENAMED
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/integrations/webhook/webhook_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/readers/file_printouts_reader.py
RENAMED
|
File without changes
|
{csvpath-0.0.573 → csvpath-0.0.574}/csvpath/managers/results/readers/file_unmatched_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|