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.
Files changed (418) hide show
  1. {csvpath-0.0.609 → csvpath-0.0.613}/PKG-INFO +1 -1
  2. {csvpath-0.0.609 → csvpath-0.0.613}/assets/.DS_Store +0 -0
  3. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/config.ini +1 -0
  4. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-azure.ini +1 -0
  5. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-filesystem-mysql.ini +1 -0
  6. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-gcs.ini +4 -3
  7. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-s3.ini +4 -3
  8. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-local-sftp.ini +4 -3
  9. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-windows-azure.ini +1 -0
  10. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-windows-gcs.ini +1 -0
  11. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-windows-local.ini +1 -0
  12. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/jenkins-windows-s3.ini +1 -0
  13. csvpath-0.0.613/assets/config/jenkins-windows-sftp.ini +114 -0
  14. {csvpath-0.0.609 → csvpath-0.0.613}/config/config.ini +4 -3
  15. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/csvpath.py +26 -15
  16. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/csvpaths.py +91 -17
  17. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_describer.py +39 -1
  18. csvpath-0.0.613/csvpath/managers/files/file_descriptor.py +70 -0
  19. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_manager.py +199 -53
  20. csvpath-0.0.613/csvpath/managers/files/file_names_rules.py +24 -0
  21. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/files_listener.py +3 -4
  22. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/lines_and_headers_cacher.py +9 -4
  23. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/webhook/webhook_listener.py +7 -1
  24. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_describer.py +41 -42
  25. csvpath-0.0.613/csvpath/managers/paths/paths_descriptor.py +93 -0
  26. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_listener.py +4 -6
  27. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_manager.py +4 -2
  28. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result_registrar.py +1 -3
  29. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result_serializer.py +60 -6
  30. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/results_manager.py +26 -139
  31. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/results_metadata.py +17 -1
  32. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/results_registrar.py +32 -6
  33. csvpath-0.0.613/csvpath/managers/results/transfers_manager.py +316 -0
  34. csvpath-0.0.613/csvpath/managers/server_config.py +22 -0
  35. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/function_factory.py +11 -0
  36. csvpath-0.0.613/csvpath/matching/functions/misc/env.py +35 -0
  37. csvpath-0.0.613/csvpath/matching/functions/misc/metadata.py +37 -0
  38. csvpath-0.0.613/csvpath/matching/functions/misc/runtime.py +36 -0
  39. csvpath-0.0.613/csvpath/matching/functions/sql/select.py +136 -0
  40. csvpath-0.0.613/csvpath/matching/functions/types/__init__.py +12 -0
  41. csvpath-0.0.613/csvpath/matching/functions/types/uuid.py +56 -0
  42. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/line.py +3 -3
  43. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/pushpop.py +10 -8
  44. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/qualified.py +19 -4
  45. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/runtime_data_collector.py +132 -0
  46. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/print_mode.py +14 -3
  47. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/scanning/scanner2.py +63 -9
  48. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_data_writer.py +0 -3
  49. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_utils.py +1 -1
  50. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/box.py +3 -1
  51. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/cache.py +11 -3
  52. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/config.py +2 -2
  53. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/config_env.py +20 -21
  54. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/date_util.py +0 -7
  55. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/http/http_data_reader.py +8 -13
  56. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/nos.py +42 -3
  57. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/path_util.py +11 -0
  58. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_manifest_entry_finder.py +10 -3
  59. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_results.py +16 -0
  60. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/run_home_maker.py +12 -3
  61. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_data_reader.py +117 -50
  62. csvpath-0.0.613/csvpath/util/sftp/sftp_data_writer.py +95 -0
  63. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_nos.py +21 -18
  64. csvpath-0.0.613/csvpath/util/sftp/sftp_server_creds.py +38 -0
  65. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/template_util.py +52 -1
  66. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/var_utility.py +14 -0
  67. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/xlsx/xlsx_reader_helper.py +17 -2
  68. {csvpath-0.0.609 → csvpath-0.0.613}/pyproject.toml +1 -1
  69. csvpath-0.0.609/assets/config/jenkins-windows-sftp.ini +0 -157
  70. csvpath-0.0.609/csvpath/managers/integrations/sftpplus/arrival_handler.py +0 -108
  71. csvpath-0.0.609/csvpath/managers/integrations/sftpplus/rpc.py +0 -97
  72. csvpath-0.0.609/csvpath/managers/integrations/sftpplus/sftpplus_listener.py +0 -229
  73. csvpath-0.0.609/csvpath/managers/integrations/sftpplus/transfer_creator.py +0 -268
  74. csvpath-0.0.609/csvpath/managers/integrations/sftpplus/transfers.py +0 -53
  75. csvpath-0.0.609/csvpath/matching/functions/types/__init__.py +0 -11
  76. csvpath-0.0.609/csvpath/util/sftp/sftp_data_writer.py +0 -65
  77. {csvpath-0.0.609 → csvpath-0.0.613}/LICENSE +0 -0
  78. {csvpath-0.0.609 → csvpath-0.0.613}/README.md +0 -0
  79. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/extra-functions.imports +0 -0
  80. {csvpath-0.0.609 → csvpath-0.0.613}/assets/config/function.imports +0 -0
  81. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/.DS_Store +0 -0
  82. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/Mac.goenvironment.json +0 -0
  83. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/Windows.goenvironment.json +0 -0
  84. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/azure-pipeline.gopipeline.json +0 -0
  85. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/azure.sh +0 -0
  86. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/gcs.sh +0 -0
  87. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/google-pipeline.gopipeline.json +0 -0
  88. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/local-pipeline.gopipeline copy.json +0 -0
  89. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/local.sh +0 -0
  90. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/s3-pipeline.gopipeline.json +0 -0
  91. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/s3.sh +0 -0
  92. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/sftp-pipeline.gopipeline.json +0 -0
  93. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/mac/sftp.sh +0 -0
  94. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/azure.bat +0 -0
  95. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/gcs.bat +0 -0
  96. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/local.bat +0 -0
  97. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/s3.bat +0 -0
  98. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/sftp.bat +0 -0
  99. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-azure.gopipeline.json +0 -0
  100. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-gcs.gopipeline.json +0 -0
  101. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-local.gopipeline.json +0 -0
  102. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-s3.gopipeline.json +0 -0
  103. {csvpath-0.0.609 → csvpath-0.0.613}/assets/gocd/windows/windows-sftp.gopipeline.json +0 -0
  104. {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/.DS_Store +0 -0
  105. {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_auto_arrival.bat +0 -0
  106. {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_auto_arrival.py +0 -0
  107. {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_auto_arrival.sh +0 -0
  108. {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_mailbox_arrival.bat +0 -0
  109. {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_mailbox_arrival.py +0 -0
  110. {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sftpplus/handle_mailbox_arrival.sh +0 -0
  111. {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sqlite/csvpath +0 -0
  112. {csvpath-0.0.609 → csvpath-0.0.613}/assets/integrations/sqlite/schema.sql +0 -0
  113. {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.25-py3-none-any.whl +0 -0
  114. {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.27-py3-none-any.whl +0 -0
  115. {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.28-py3-none-any.whl +0 -0
  116. {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.29-py3-none-any.whl +0 -0
  117. {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.30.tar.gz +0 -0
  118. {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.31.tar.gz +0 -0
  119. {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.33.tar.gz +0 -0
  120. {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.34.tar.gz +0 -0
  121. {csvpath-0.0.609 → csvpath-0.0.613}/assets/libs/release_candidate_maker-0.0.35.tar.gz +0 -0
  122. {csvpath-0.0.609 → csvpath-0.0.613}/config/env.json +0 -0
  123. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/__init__.py +0 -0
  124. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/__init__.py +0 -0
  125. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/asker.py +0 -0
  126. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/cli.py +0 -0
  127. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/const.py +0 -0
  128. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/debug_config.py +0 -0
  129. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/drill_down.py +0 -0
  130. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/function_describer.py +0 -0
  131. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/function_lister.py +0 -0
  132. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/cli/selecter.py +0 -0
  133. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/__init__.py +0 -0
  134. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/errors/error.py +0 -0
  135. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/errors/error_collector.py +0 -0
  136. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/errors/error_comms.py +0 -0
  137. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/errors/error_manager.py +0 -0
  138. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_activator.py +0 -0
  139. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_metadata.py +0 -0
  140. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/file_registrar.py +0 -0
  141. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/files/files_activation_listener.py +0 -0
  142. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ckan/ckan.py +0 -0
  143. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ckan/ckan_listener.py +0 -0
  144. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ckan/datafile.py +0 -0
  145. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ckan/dataset.py +0 -0
  146. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/event.py +0 -0
  147. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/event_result.py +0 -0
  148. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/file_listener_ol.py +0 -0
  149. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/job.py +0 -0
  150. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/ol_listener.py +0 -0
  151. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/paths_listener_ol.py +0 -0
  152. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/result_listener_ol.py +0 -0
  153. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/results_listener_ol.py +0 -0
  154. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/run.py +0 -0
  155. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/run_listener_ol.py +0 -0
  156. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/run_state.py +0 -0
  157. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/ol/sender.py +0 -0
  158. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/error_metrics.py +0 -0
  159. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/metrics.py +0 -0
  160. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_error_listener.py +0 -0
  161. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_file_listener.py +0 -0
  162. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_listener.py +0 -0
  163. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_paths_listener.py +0 -0
  164. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_result_listener.py +0 -0
  165. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/otlp/otlp_results_listener.py +0 -0
  166. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/scripts/scripts_results_listener.py +0 -0
  167. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sftp/sftp_sender.py +0 -0
  168. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/slack/event.py +0 -0
  169. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/slack/sender.py +0 -0
  170. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/engine.py +0 -0
  171. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_file_listener.py +0 -0
  172. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_listener.py +0 -0
  173. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_paths_listener.py +0 -0
  174. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_result_listener.py +0 -0
  175. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/sql_results_listener.py +0 -0
  176. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/tables.py +0 -0
  177. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sql/updates.py +0 -0
  178. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sqlite/schema.sql +0 -0
  179. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sqlite/sqlite_result_listener.py +0 -0
  180. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/sqlite/sqlite_results_listener.py +0 -0
  181. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/integrations/webhook/webhook_results_listener.py +0 -0
  182. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/listener.py +0 -0
  183. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/metadata.py +0 -0
  184. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_metadata.py +0 -0
  185. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/paths/paths_registrar.py +0 -0
  186. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/registrar.py +0 -0
  187. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/file_errors_reader.py +0 -0
  188. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/file_lines_reader.py +0 -0
  189. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/file_printouts_reader.py +0 -0
  190. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/file_unmatched_reader.py +0 -0
  191. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/readers/readers.py +0 -0
  192. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result.py +0 -0
  193. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result_file_reader.py +0 -0
  194. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/results/result_metadata.py +0 -0
  195. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/run/run_listener_stdout.py +0 -0
  196. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/run/run_metadata.py +0 -0
  197. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/run/run_registrar.py +0 -0
  198. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/managers/test_listener.py +0 -0
  199. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/__init__.py +0 -0
  200. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/__init__.py +0 -0
  201. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/args.py +0 -0
  202. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/args_helper.py +0 -0
  203. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/all.py +0 -0
  204. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/andf.py +0 -0
  205. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/any.py +0 -0
  206. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/between.py +0 -0
  207. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/empty.py +0 -0
  208. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/exists.py +0 -0
  209. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/inf.py +0 -0
  210. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/no.py +0 -0
  211. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/notf.py +0 -0
  212. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/orf.py +0 -0
  213. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/boolean/yes.py +0 -0
  214. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count.py +0 -0
  215. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count_bytes.py +0 -0
  216. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count_headers.py +0 -0
  217. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count_lines.py +0 -0
  218. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/count_scans.py +0 -0
  219. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/counter.py +0 -0
  220. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/every.py +0 -0
  221. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/has_matches.py +0 -0
  222. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/increment.py +0 -0
  223. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/tally.py +0 -0
  224. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/counting/total_lines.py +0 -0
  225. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/dates/now.py +0 -0
  226. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/dates/part.py +0 -0
  227. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/dates/roll.py +0 -0
  228. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/function.py +0 -0
  229. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/function_finder.py +0 -0
  230. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/function_focus.py +0 -0
  231. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/append.py +0 -0
  232. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/collect.py +0 -0
  233. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/empty_stack.py +0 -0
  234. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/end.py +0 -0
  235. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/header_name.py +0 -0
  236. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/header_names_mismatch.py +0 -0
  237. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/headers.py +0 -0
  238. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/headers_stack.py +0 -0
  239. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/insert.py +0 -0
  240. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/line_before.py +0 -0
  241. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/mismatch.py +0 -0
  242. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/remove.py +0 -0
  243. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/rename.py +0 -0
  244. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/replace.py +0 -0
  245. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/headers/reset_headers.py +0 -0
  246. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/json/jsonpath.py +0 -0
  247. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/advance.py +0 -0
  248. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/after_blank.py +0 -0
  249. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/dups.py +0 -0
  250. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/first.py +0 -0
  251. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/first_line.py +0 -0
  252. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/last.py +0 -0
  253. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/lines/stop.py +0 -0
  254. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/above.py +0 -0
  255. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/add.py +0 -0
  256. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/divide.py +0 -0
  257. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/equals.py +0 -0
  258. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/intf.py +0 -0
  259. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/mod.py +0 -0
  260. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/multiply.py +0 -0
  261. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/odd.py +0 -0
  262. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/round.py +0 -0
  263. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/subtotal.py +0 -0
  264. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/subtract.py +0 -0
  265. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/math/sum.py +0 -0
  266. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/misc/fingerprint.py +0 -0
  267. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/misc/importf.py +0 -0
  268. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/misc/parquet.py +0 -0
  269. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/misc/random.py +0 -0
  270. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/jinjaf.py +0 -0
  271. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/print_line.py +0 -0
  272. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/print_queue.py +0 -0
  273. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/printf.py +0 -0
  274. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/print/table.py +0 -0
  275. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/sql/sql_in.py +0 -0
  276. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/minf.py +0 -0
  277. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/nminmax.py +0 -0
  278. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/percent.py +0 -0
  279. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/percent_unique.py +0 -0
  280. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/stats/stdev.py +0 -0
  281. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/alter.py +0 -0
  282. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/caps.py +0 -0
  283. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/concat.py +0 -0
  284. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/contains.py +0 -0
  285. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/format.py +0 -0
  286. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/length.py +0 -0
  287. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/lower.py +0 -0
  288. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/metaphone.py +0 -0
  289. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/regex.py +0 -0
  290. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/starts_with.py +0 -0
  291. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/strip.py +0 -0
  292. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/substring.py +0 -0
  293. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/strings/upper.py +0 -0
  294. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/testing/debug.py +0 -0
  295. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/blank.py +0 -0
  296. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/boolean.py +0 -0
  297. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/datatype.py +0 -0
  298. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/datef.py +0 -0
  299. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/decimal.py +0 -0
  300. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/email.py +0 -0
  301. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/nonef.py +0 -0
  302. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/string.py +0 -0
  303. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/type.py +0 -0
  304. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/url.py +0 -0
  305. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/types/wildcard.py +0 -0
  306. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/fail.py +0 -0
  307. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/failed.py +0 -0
  308. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/matches.py +0 -0
  309. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/validity/percent_matching.py +0 -0
  310. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/clear.py +0 -0
  311. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/get.py +0 -0
  312. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/index_of.py +0 -0
  313. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/put.py +0 -0
  314. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/slice.py +0 -0
  315. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/sort.py +0 -0
  316. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/track.py +0 -0
  317. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/variables/variables.py +0 -0
  318. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/functions/xml/xpath.py +0 -0
  319. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/lark_parser.py +0 -0
  320. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/lark_transformer.py +0 -0
  321. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/matcher.py +0 -0
  322. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/__init__.py +0 -0
  323. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/equality.py +0 -0
  324. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/expression.py +0 -0
  325. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/header.py +0 -0
  326. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/matchable.py +0 -0
  327. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/reference.py +0 -0
  328. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/term.py +0 -0
  329. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/productions/variable.py +0 -0
  330. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/exceptions.py +0 -0
  331. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/expression_encoder.py +0 -0
  332. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/expression_utility.py +0 -0
  333. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/lark_print_parser.py +0 -0
  334. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/parquet_utility.py +0 -0
  335. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/matching/util/print_parser.py +0 -0
  336. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/error_mode.py +0 -0
  337. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/explain_mode.py +0 -0
  338. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/files_mode.py +0 -0
  339. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/logic_mode.py +0 -0
  340. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/mode_controller.py +0 -0
  341. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/return_mode.py +0 -0
  342. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/run_mode.py +0 -0
  343. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/source_mode.py +0 -0
  344. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/transfer_mode.py +0 -0
  345. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/unmatched_mode.py +0 -0
  346. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/modes/validation_mode.py +0 -0
  347. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/scanning/__init__.py +0 -0
  348. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/scanning/scanner2_parser.py +0 -0
  349. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/scanning/scanner2_transformer.py +0 -0
  350. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_data_reader.py +0 -0
  351. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_fingerprinter.py +0 -0
  352. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_json_data_reader.py +0 -0
  353. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_nos.py +0 -0
  354. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_timing_policy.py +0 -0
  355. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/azure/azure_xlsx_data_reader.py +0 -0
  356. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/backend_check.py +0 -0
  357. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/caser.py +0 -0
  358. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/class_loader.py +0 -0
  359. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/code.py +0 -0
  360. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/config_exception.py +0 -0
  361. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/exceptions.py +0 -0
  362. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/file_info.py +0 -0
  363. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/file_readers.py +0 -0
  364. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/file_utility.py +0 -0
  365. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/file_writers.py +0 -0
  366. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_data_reader.py +0 -0
  367. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_data_writer.py +0 -0
  368. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_fingerprinter.py +0 -0
  369. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_json_data_reader.py +0 -0
  370. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_nos.py +0 -0
  371. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_utils.py +0 -0
  372. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/gcs/gcs_xlsx_data_reader.py +0 -0
  373. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/hasher.py +0 -0
  374. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/intermediary.py +0 -0
  375. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/json/json_data_reader.py +0 -0
  376. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/json/json_reader_helper.py +0 -0
  377. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/last_line_stats.py +0 -0
  378. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/line_counter.py +0 -0
  379. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/line_monitor.py +0 -0
  380. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/line_spooler.py +0 -0
  381. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/log_utility.py +0 -0
  382. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/metadata_parser.py +0 -0
  383. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/pandas_data_reader.py +0 -0
  384. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/printer.py +0 -0
  385. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/py_file_utility.py +0 -0
  386. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/files_reference_finder_2.py +0 -0
  387. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/files_tools/fingerprint_finder.py +0 -0
  388. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/files_tools/range_finder.py +0 -0
  389. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/ref_utils.py +0 -0
  390. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_exceptions.py +0 -0
  391. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_grammar.py +0 -0
  392. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_parser.py +0 -0
  393. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/reference_transformer.py +0 -0
  394. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_reference_finder_2.py +0 -0
  395. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/data_finder.py +0 -0
  396. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/date_filter.py +0 -0
  397. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/identity_finder.py +0 -0
  398. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/path_filter.py +0 -0
  399. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/resolve_possibles.py +0 -0
  400. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/token_filters.py +0 -0
  401. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/results_tools/yesterday_or_today_translator.py +0 -0
  402. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/references/tools/date_completer.py +0 -0
  403. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/referrer_printer.py +0 -0
  404. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_data_reader.py +0 -0
  405. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_data_writer.py +0 -0
  406. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_fingerprinter.py +0 -0
  407. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_json_data_reader.py +0 -0
  408. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_nos.py +0 -0
  409. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_utils.py +0 -0
  410. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/s3/s3_xlsx_data_reader.py +0 -0
  411. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_config.py +0 -0
  412. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_fingerprinter.py +0 -0
  413. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_json_data_reader.py +0 -0
  414. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_walk.py +0 -0
  415. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sftp/sftp_xlsx_data_reader.py +0 -0
  416. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/sqliter.py +0 -0
  417. {csvpath-0.0.609 → csvpath-0.0.613}/csvpath/util/stopwatch.py +0 -0
  418. {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.609
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
@@ -35,6 +35,7 @@ use_cache = yes
35
35
 
36
36
  [results]
37
37
  archive = tmp/local/archive
38
+ transfers = tmp/local/transfers
38
39
 
39
40
  [inputs]
40
41
  files = tmp/local/inputs/named_files
@@ -35,6 +35,7 @@ imports =
35
35
 
36
36
  [results]
37
37
  archive = tmp/azure/archive
38
+ transfers = tmp/azure/transfers
38
39
 
39
40
  [inputs]
40
41
  files = azure://csvpath/mac/inputs/named_files
@@ -29,6 +29,7 @@ imports =
29
29
 
30
30
  [results]
31
31
  archive = tmp/mysql/archive
32
+ transfers = tmp/mysql/transfers
32
33
 
33
34
  [inputs]
34
35
  files = tmp/mysql/inputs/named_files
@@ -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
 
@@ -30,6 +30,7 @@ imports =
30
30
 
31
31
  [results]
32
32
  archive = tmp\azure\archive
33
+ transfers = tmp\azure\transfers
33
34
 
34
35
  [inputs]
35
36
  files = azure://csvpath/windows/inputs/named_files
@@ -29,6 +29,7 @@ imports =
29
29
 
30
30
  [results]
31
31
  archive = tmp\gcs\archive
32
+ transfers = tmp\gcs\transfers
32
33
 
33
34
  [inputs]
34
35
  files = gs://csvpath-testing-1/windows/inputs/named_files
@@ -30,6 +30,7 @@ imports =
30
30
 
31
31
  [results]
32
32
  archive = tmp\local\archive
33
+ transfers = tmp\local\transfers
33
34
 
34
35
  [inputs]
35
36
  files = tmp\local\inputs\named_files
@@ -35,6 +35,7 @@ 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/windows/inputs/named_files
@@ -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
- """ CsvPath is the main class for the library. most of the magic
2
- happens either here or in individual functions. """ # pylint: disable=C0302
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, timezone
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._run_name = None
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 | unmatched | errors | meta | vars | printouts
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._run_name:
999
+ if self._save_scan_dir and self._run_dir:
985
1000
  with open(
986
- os.path.join(self._save_scan_dir, f"{self._run_name}.txt"),
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._run_name:
1006
+ if self._save_match_dir and self._run_dir:
992
1007
  with open(
993
- os.path.join(self._save_match_dir, f"{self._run_name}.txt"),
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}"