csvpath 0.0.613__tar.gz → 0.0.615__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 (412) hide show
  1. {csvpath-0.0.613 → csvpath-0.0.615}/PKG-INFO +1 -1
  2. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-local-sftp.ini +3 -3
  3. csvpath-0.0.615/assets/libs/release_candidate_maker-0.0.36.tar.gz +0 -0
  4. {csvpath-0.0.613 → csvpath-0.0.615}/config/config.ini +3 -3
  5. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/files/file_manager.py +52 -19
  6. csvpath-0.0.615/csvpath/managers/files/files_activation_listener.py +46 -0
  7. {csvpath-0.0.613 → csvpath-0.0.615}/pyproject.toml +1 -1
  8. csvpath-0.0.613/csvpath/managers/files/files_activation_listener.py +0 -31
  9. {csvpath-0.0.613 → csvpath-0.0.615}/LICENSE +0 -0
  10. {csvpath-0.0.613 → csvpath-0.0.615}/README.md +0 -0
  11. {csvpath-0.0.613 → csvpath-0.0.615}/assets/.DS_Store +0 -0
  12. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/config.ini +0 -0
  13. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/extra-functions.imports +0 -0
  14. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/function.imports +0 -0
  15. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-local-azure.ini +0 -0
  16. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-local-filesystem-mysql.ini +0 -0
  17. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-local-gcs.ini +0 -0
  18. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-local-s3.ini +0 -0
  19. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-windows-azure.ini +0 -0
  20. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-windows-gcs.ini +0 -0
  21. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-windows-local.ini +0 -0
  22. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-windows-s3.ini +0 -0
  23. {csvpath-0.0.613 → csvpath-0.0.615}/assets/config/jenkins-windows-sftp.ini +0 -0
  24. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/.DS_Store +0 -0
  25. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/Mac.goenvironment.json +0 -0
  26. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/Windows.goenvironment.json +0 -0
  27. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/azure-pipeline.gopipeline.json +0 -0
  28. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/azure.sh +0 -0
  29. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/gcs.sh +0 -0
  30. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/google-pipeline.gopipeline.json +0 -0
  31. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/local-pipeline.gopipeline copy.json +0 -0
  32. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/local.sh +0 -0
  33. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/s3-pipeline.gopipeline.json +0 -0
  34. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/s3.sh +0 -0
  35. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/sftp-pipeline.gopipeline.json +0 -0
  36. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/mac/sftp.sh +0 -0
  37. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/azure.bat +0 -0
  38. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/gcs.bat +0 -0
  39. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/local.bat +0 -0
  40. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/s3.bat +0 -0
  41. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/sftp.bat +0 -0
  42. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/windows-azure.gopipeline.json +0 -0
  43. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/windows-gcs.gopipeline.json +0 -0
  44. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/windows-local.gopipeline.json +0 -0
  45. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/windows-s3.gopipeline.json +0 -0
  46. {csvpath-0.0.613 → csvpath-0.0.615}/assets/gocd/windows/windows-sftp.gopipeline.json +0 -0
  47. {csvpath-0.0.613 → csvpath-0.0.615}/assets/integrations/.DS_Store +0 -0
  48. {csvpath-0.0.613 → csvpath-0.0.615}/assets/integrations/sftpplus/handle_auto_arrival.bat +0 -0
  49. {csvpath-0.0.613 → csvpath-0.0.615}/assets/integrations/sftpplus/handle_auto_arrival.py +0 -0
  50. {csvpath-0.0.613 → csvpath-0.0.615}/assets/integrations/sftpplus/handle_auto_arrival.sh +0 -0
  51. {csvpath-0.0.613 → csvpath-0.0.615}/assets/integrations/sftpplus/handle_mailbox_arrival.bat +0 -0
  52. {csvpath-0.0.613 → csvpath-0.0.615}/assets/integrations/sftpplus/handle_mailbox_arrival.py +0 -0
  53. {csvpath-0.0.613 → csvpath-0.0.615}/assets/integrations/sftpplus/handle_mailbox_arrival.sh +0 -0
  54. {csvpath-0.0.613 → csvpath-0.0.615}/assets/integrations/sqlite/csvpath +0 -0
  55. {csvpath-0.0.613 → csvpath-0.0.615}/assets/integrations/sqlite/schema.sql +0 -0
  56. {csvpath-0.0.613 → csvpath-0.0.615}/assets/libs/release_candidate_maker-0.0.25-py3-none-any.whl +0 -0
  57. {csvpath-0.0.613 → csvpath-0.0.615}/assets/libs/release_candidate_maker-0.0.27-py3-none-any.whl +0 -0
  58. {csvpath-0.0.613 → csvpath-0.0.615}/assets/libs/release_candidate_maker-0.0.28-py3-none-any.whl +0 -0
  59. {csvpath-0.0.613 → csvpath-0.0.615}/assets/libs/release_candidate_maker-0.0.29-py3-none-any.whl +0 -0
  60. {csvpath-0.0.613 → csvpath-0.0.615}/assets/libs/release_candidate_maker-0.0.30.tar.gz +0 -0
  61. {csvpath-0.0.613 → csvpath-0.0.615}/assets/libs/release_candidate_maker-0.0.31.tar.gz +0 -0
  62. {csvpath-0.0.613 → csvpath-0.0.615}/assets/libs/release_candidate_maker-0.0.33.tar.gz +0 -0
  63. {csvpath-0.0.613 → csvpath-0.0.615}/assets/libs/release_candidate_maker-0.0.34.tar.gz +0 -0
  64. {csvpath-0.0.613 → csvpath-0.0.615}/assets/libs/release_candidate_maker-0.0.35.tar.gz +0 -0
  65. {csvpath-0.0.613 → csvpath-0.0.615}/config/env.json +0 -0
  66. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/__init__.py +0 -0
  67. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/cli/__init__.py +0 -0
  68. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/cli/asker.py +0 -0
  69. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/cli/cli.py +0 -0
  70. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/cli/const.py +0 -0
  71. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/cli/debug_config.py +0 -0
  72. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/cli/drill_down.py +0 -0
  73. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/cli/function_describer.py +0 -0
  74. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/cli/function_lister.py +0 -0
  75. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/cli/selecter.py +0 -0
  76. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/csvpath.py +0 -0
  77. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/csvpaths.py +0 -0
  78. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/__init__.py +0 -0
  79. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/errors/error.py +0 -0
  80. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/errors/error_collector.py +0 -0
  81. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/errors/error_comms.py +0 -0
  82. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/errors/error_manager.py +0 -0
  83. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/files/file_activator.py +0 -0
  84. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/files/file_describer.py +0 -0
  85. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/files/file_descriptor.py +0 -0
  86. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/files/file_metadata.py +0 -0
  87. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/files/file_names_rules.py +0 -0
  88. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/files/file_registrar.py +0 -0
  89. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/files/files_listener.py +0 -0
  90. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/files/lines_and_headers_cacher.py +0 -0
  91. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ckan/ckan.py +0 -0
  92. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ckan/ckan_listener.py +0 -0
  93. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ckan/datafile.py +0 -0
  94. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ckan/dataset.py +0 -0
  95. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/event.py +0 -0
  96. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/event_result.py +0 -0
  97. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/file_listener_ol.py +0 -0
  98. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/job.py +0 -0
  99. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/ol_listener.py +0 -0
  100. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/paths_listener_ol.py +0 -0
  101. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/result_listener_ol.py +0 -0
  102. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/results_listener_ol.py +0 -0
  103. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/run.py +0 -0
  104. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/run_listener_ol.py +0 -0
  105. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/run_state.py +0 -0
  106. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/ol/sender.py +0 -0
  107. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/otlp/error_metrics.py +0 -0
  108. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/otlp/metrics.py +0 -0
  109. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/otlp/otlp_error_listener.py +0 -0
  110. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/otlp/otlp_file_listener.py +0 -0
  111. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/otlp/otlp_listener.py +0 -0
  112. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/otlp/otlp_paths_listener.py +0 -0
  113. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/otlp/otlp_result_listener.py +0 -0
  114. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/otlp/otlp_results_listener.py +0 -0
  115. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/scripts/scripts_results_listener.py +0 -0
  116. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sftp/sftp_sender.py +0 -0
  117. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/slack/event.py +0 -0
  118. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/slack/sender.py +0 -0
  119. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sql/engine.py +0 -0
  120. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sql/sql_file_listener.py +0 -0
  121. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sql/sql_listener.py +0 -0
  122. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sql/sql_paths_listener.py +0 -0
  123. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sql/sql_result_listener.py +0 -0
  124. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sql/sql_results_listener.py +0 -0
  125. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sql/tables.py +0 -0
  126. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sql/updates.py +0 -0
  127. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sqlite/schema.sql +0 -0
  128. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sqlite/sqlite_result_listener.py +0 -0
  129. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/sqlite/sqlite_results_listener.py +0 -0
  130. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/webhook/webhook_listener.py +0 -0
  131. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/integrations/webhook/webhook_results_listener.py +0 -0
  132. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/listener.py +0 -0
  133. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/metadata.py +0 -0
  134. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/paths/paths_describer.py +0 -0
  135. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/paths/paths_descriptor.py +0 -0
  136. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/paths/paths_listener.py +0 -0
  137. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/paths/paths_manager.py +0 -0
  138. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/paths/paths_metadata.py +0 -0
  139. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/paths/paths_registrar.py +0 -0
  140. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/registrar.py +0 -0
  141. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/readers/file_errors_reader.py +0 -0
  142. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/readers/file_lines_reader.py +0 -0
  143. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/readers/file_printouts_reader.py +0 -0
  144. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/readers/file_unmatched_reader.py +0 -0
  145. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/readers/readers.py +0 -0
  146. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/result.py +0 -0
  147. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/result_file_reader.py +0 -0
  148. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/result_metadata.py +0 -0
  149. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/result_registrar.py +0 -0
  150. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/result_serializer.py +0 -0
  151. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/results_manager.py +0 -0
  152. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/results_metadata.py +0 -0
  153. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/results_registrar.py +0 -0
  154. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/results/transfers_manager.py +0 -0
  155. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/run/run_listener_stdout.py +0 -0
  156. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/run/run_metadata.py +0 -0
  157. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/run/run_registrar.py +0 -0
  158. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/server_config.py +0 -0
  159. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/managers/test_listener.py +0 -0
  160. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/__init__.py +0 -0
  161. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/__init__.py +0 -0
  162. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/args.py +0 -0
  163. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/args_helper.py +0 -0
  164. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/all.py +0 -0
  165. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/andf.py +0 -0
  166. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/any.py +0 -0
  167. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/between.py +0 -0
  168. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/empty.py +0 -0
  169. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/exists.py +0 -0
  170. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/inf.py +0 -0
  171. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/no.py +0 -0
  172. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/notf.py +0 -0
  173. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/orf.py +0 -0
  174. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/boolean/yes.py +0 -0
  175. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/count.py +0 -0
  176. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/count_bytes.py +0 -0
  177. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/count_headers.py +0 -0
  178. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/count_lines.py +0 -0
  179. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/count_scans.py +0 -0
  180. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/counter.py +0 -0
  181. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/every.py +0 -0
  182. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/has_matches.py +0 -0
  183. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/increment.py +0 -0
  184. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/tally.py +0 -0
  185. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/counting/total_lines.py +0 -0
  186. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/dates/now.py +0 -0
  187. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/dates/part.py +0 -0
  188. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/dates/roll.py +0 -0
  189. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/function.py +0 -0
  190. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/function_factory.py +0 -0
  191. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/function_finder.py +0 -0
  192. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/function_focus.py +0 -0
  193. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/append.py +0 -0
  194. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/collect.py +0 -0
  195. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/empty_stack.py +0 -0
  196. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/end.py +0 -0
  197. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/header_name.py +0 -0
  198. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/header_names_mismatch.py +0 -0
  199. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/headers.py +0 -0
  200. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/headers_stack.py +0 -0
  201. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/insert.py +0 -0
  202. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/line_before.py +0 -0
  203. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/mismatch.py +0 -0
  204. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/remove.py +0 -0
  205. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/rename.py +0 -0
  206. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/replace.py +0 -0
  207. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/headers/reset_headers.py +0 -0
  208. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/json/jsonpath.py +0 -0
  209. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/lines/advance.py +0 -0
  210. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/lines/after_blank.py +0 -0
  211. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/lines/dups.py +0 -0
  212. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/lines/first.py +0 -0
  213. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/lines/first_line.py +0 -0
  214. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/lines/last.py +0 -0
  215. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/lines/stop.py +0 -0
  216. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/above.py +0 -0
  217. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/add.py +0 -0
  218. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/divide.py +0 -0
  219. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/equals.py +0 -0
  220. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/intf.py +0 -0
  221. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/mod.py +0 -0
  222. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/multiply.py +0 -0
  223. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/odd.py +0 -0
  224. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/round.py +0 -0
  225. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/subtotal.py +0 -0
  226. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/subtract.py +0 -0
  227. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/math/sum.py +0 -0
  228. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/misc/env.py +0 -0
  229. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/misc/fingerprint.py +0 -0
  230. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/misc/importf.py +0 -0
  231. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/misc/metadata.py +0 -0
  232. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/misc/parquet.py +0 -0
  233. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/misc/random.py +0 -0
  234. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/misc/runtime.py +0 -0
  235. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/print/jinjaf.py +0 -0
  236. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/print/print_line.py +0 -0
  237. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/print/print_queue.py +0 -0
  238. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/print/printf.py +0 -0
  239. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/print/table.py +0 -0
  240. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/sql/select.py +0 -0
  241. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/sql/sql_in.py +0 -0
  242. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/stats/minf.py +0 -0
  243. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/stats/nminmax.py +0 -0
  244. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/stats/percent.py +0 -0
  245. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/stats/percent_unique.py +0 -0
  246. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/stats/stdev.py +0 -0
  247. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/alter.py +0 -0
  248. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/caps.py +0 -0
  249. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/concat.py +0 -0
  250. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/contains.py +0 -0
  251. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/format.py +0 -0
  252. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/length.py +0 -0
  253. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/lower.py +0 -0
  254. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/metaphone.py +0 -0
  255. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/regex.py +0 -0
  256. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/starts_with.py +0 -0
  257. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/strip.py +0 -0
  258. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/substring.py +0 -0
  259. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/strings/upper.py +0 -0
  260. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/testing/debug.py +0 -0
  261. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/__init__.py +0 -0
  262. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/blank.py +0 -0
  263. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/boolean.py +0 -0
  264. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/datatype.py +0 -0
  265. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/datef.py +0 -0
  266. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/decimal.py +0 -0
  267. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/email.py +0 -0
  268. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/nonef.py +0 -0
  269. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/string.py +0 -0
  270. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/type.py +0 -0
  271. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/url.py +0 -0
  272. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/uuid.py +0 -0
  273. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/types/wildcard.py +0 -0
  274. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/validity/fail.py +0 -0
  275. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/validity/failed.py +0 -0
  276. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/validity/line.py +0 -0
  277. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/validity/matches.py +0 -0
  278. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/validity/percent_matching.py +0 -0
  279. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/variables/clear.py +0 -0
  280. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/variables/get.py +0 -0
  281. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/variables/index_of.py +0 -0
  282. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/variables/pushpop.py +0 -0
  283. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/variables/put.py +0 -0
  284. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/variables/slice.py +0 -0
  285. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/variables/sort.py +0 -0
  286. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/variables/track.py +0 -0
  287. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/variables/variables.py +0 -0
  288. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/functions/xml/xpath.py +0 -0
  289. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/lark_parser.py +0 -0
  290. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/lark_transformer.py +0 -0
  291. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/matcher.py +0 -0
  292. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/productions/__init__.py +0 -0
  293. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/productions/equality.py +0 -0
  294. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/productions/expression.py +0 -0
  295. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/productions/header.py +0 -0
  296. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/productions/matchable.py +0 -0
  297. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/productions/qualified.py +0 -0
  298. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/productions/reference.py +0 -0
  299. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/productions/term.py +0 -0
  300. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/productions/variable.py +0 -0
  301. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/util/exceptions.py +0 -0
  302. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/util/expression_encoder.py +0 -0
  303. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/util/expression_utility.py +0 -0
  304. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/util/lark_print_parser.py +0 -0
  305. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/util/parquet_utility.py +0 -0
  306. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/util/print_parser.py +0 -0
  307. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/matching/util/runtime_data_collector.py +0 -0
  308. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/error_mode.py +0 -0
  309. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/explain_mode.py +0 -0
  310. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/files_mode.py +0 -0
  311. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/logic_mode.py +0 -0
  312. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/mode_controller.py +0 -0
  313. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/print_mode.py +0 -0
  314. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/return_mode.py +0 -0
  315. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/run_mode.py +0 -0
  316. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/source_mode.py +0 -0
  317. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/transfer_mode.py +0 -0
  318. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/unmatched_mode.py +0 -0
  319. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/modes/validation_mode.py +0 -0
  320. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/scanning/__init__.py +0 -0
  321. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/scanning/scanner2.py +0 -0
  322. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/scanning/scanner2_parser.py +0 -0
  323. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/scanning/scanner2_transformer.py +0 -0
  324. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/azure/azure_data_reader.py +0 -0
  325. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/azure/azure_data_writer.py +0 -0
  326. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/azure/azure_fingerprinter.py +0 -0
  327. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/azure/azure_json_data_reader.py +0 -0
  328. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/azure/azure_nos.py +0 -0
  329. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/azure/azure_timing_policy.py +0 -0
  330. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/azure/azure_utils.py +0 -0
  331. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/azure/azure_xlsx_data_reader.py +0 -0
  332. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/backend_check.py +0 -0
  333. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/box.py +0 -0
  334. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/cache.py +0 -0
  335. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/caser.py +0 -0
  336. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/class_loader.py +0 -0
  337. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/code.py +0 -0
  338. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/config.py +0 -0
  339. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/config_env.py +0 -0
  340. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/config_exception.py +0 -0
  341. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/date_util.py +0 -0
  342. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/exceptions.py +0 -0
  343. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/file_info.py +0 -0
  344. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/file_readers.py +0 -0
  345. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/file_utility.py +0 -0
  346. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/file_writers.py +0 -0
  347. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/gcs/gcs_data_reader.py +0 -0
  348. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/gcs/gcs_data_writer.py +0 -0
  349. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/gcs/gcs_fingerprinter.py +0 -0
  350. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/gcs/gcs_json_data_reader.py +0 -0
  351. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/gcs/gcs_nos.py +0 -0
  352. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/gcs/gcs_utils.py +0 -0
  353. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/gcs/gcs_xlsx_data_reader.py +0 -0
  354. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/hasher.py +0 -0
  355. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/http/http_data_reader.py +0 -0
  356. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/intermediary.py +0 -0
  357. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/json/json_data_reader.py +0 -0
  358. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/json/json_reader_helper.py +0 -0
  359. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/last_line_stats.py +0 -0
  360. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/line_counter.py +0 -0
  361. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/line_monitor.py +0 -0
  362. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/line_spooler.py +0 -0
  363. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/log_utility.py +0 -0
  364. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/metadata_parser.py +0 -0
  365. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/nos.py +0 -0
  366. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/pandas_data_reader.py +0 -0
  367. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/path_util.py +0 -0
  368. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/printer.py +0 -0
  369. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/py_file_utility.py +0 -0
  370. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/files_reference_finder_2.py +0 -0
  371. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/files_tools/fingerprint_finder.py +0 -0
  372. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/files_tools/range_finder.py +0 -0
  373. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/ref_utils.py +0 -0
  374. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/reference_exceptions.py +0 -0
  375. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/reference_grammar.py +0 -0
  376. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/reference_manifest_entry_finder.py +0 -0
  377. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/reference_parser.py +0 -0
  378. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/reference_results.py +0 -0
  379. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/reference_transformer.py +0 -0
  380. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/results_reference_finder_2.py +0 -0
  381. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/results_tools/data_finder.py +0 -0
  382. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/results_tools/date_filter.py +0 -0
  383. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/results_tools/identity_finder.py +0 -0
  384. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/results_tools/path_filter.py +0 -0
  385. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/results_tools/resolve_possibles.py +0 -0
  386. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/results_tools/token_filters.py +0 -0
  387. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/results_tools/yesterday_or_today_translator.py +0 -0
  388. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/references/tools/date_completer.py +0 -0
  389. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/referrer_printer.py +0 -0
  390. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/run_home_maker.py +0 -0
  391. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/s3/s3_data_reader.py +0 -0
  392. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/s3/s3_data_writer.py +0 -0
  393. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/s3/s3_fingerprinter.py +0 -0
  394. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/s3/s3_json_data_reader.py +0 -0
  395. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/s3/s3_nos.py +0 -0
  396. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/s3/s3_utils.py +0 -0
  397. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/s3/s3_xlsx_data_reader.py +0 -0
  398. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sftp/sftp_config.py +0 -0
  399. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sftp/sftp_data_reader.py +0 -0
  400. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sftp/sftp_data_writer.py +0 -0
  401. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sftp/sftp_fingerprinter.py +0 -0
  402. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sftp/sftp_json_data_reader.py +0 -0
  403. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sftp/sftp_nos.py +0 -0
  404. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sftp/sftp_server_creds.py +0 -0
  405. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sftp/sftp_walk.py +0 -0
  406. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sftp/sftp_xlsx_data_reader.py +0 -0
  407. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/sqliter.py +0 -0
  408. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/stopwatch.py +0 -0
  409. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/template_util.py +0 -0
  410. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/var_utility.py +0 -0
  411. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/xlsx/xlsx_data_reader.py +0 -0
  412. {csvpath-0.0.613 → csvpath-0.0.615}/csvpath/util/xlsx/xlsx_reader_helper.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: csvpath
3
- Version: 0.0.613
3
+ Version: 0.0.615
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
@@ -25,7 +25,7 @@ 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
@@ -95,7 +95,7 @@ port = SFTPPLUS_PORT
95
95
  admin_username = SFTPPLUS_ADMIN_USERNAME
96
96
  admin_password = SFTPPLUS_ADMIN_PASSWORD
97
97
  api_url = https://. . . :10020/json
98
- scripts_dir =
98
+ scripts_dir =
99
99
  execute_timeout = 300
100
100
 
101
101
  [ckan]
@@ -110,5 +110,5 @@ timeout = 5
110
110
  verify = False
111
111
 
112
112
  [slack]
113
- webhook_url =
113
+ webhook_url =
114
114
 
@@ -35,7 +35,7 @@ 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
@@ -106,7 +106,7 @@ port = SFTPPLUS_PORT
106
106
  admin_username = SFTPPLUS_ADMIN_USERNAME
107
107
  admin_password = SFTPPLUS_ADMIN_PASSWORD
108
108
  api_url = https://. . . :10020/json
109
- scripts_dir =
109
+ scripts_dir =
110
110
  execute_timeout = 300
111
111
 
112
112
  [ckan]
@@ -121,7 +121,7 @@ timeout = 5
121
121
  verify = False
122
122
 
123
123
  [slack]
124
- webhook_url =
124
+ webhook_url =
125
125
 
126
126
  [scripts]
127
127
  run_scripts = yes
@@ -1,6 +1,7 @@
1
1
  import re
2
2
  import json
3
3
  import traceback
4
+ from uuid import UUID
4
5
  from typing import NewType
5
6
  from json import JSONDecodeError
6
7
  from csvpath.util.file_readers import DataFileReader
@@ -53,18 +54,6 @@ class FileManager:
53
54
  def activator(self) -> NamedFileActivator:
54
55
  return NamedFileActivator(self)
55
56
 
56
- """
57
- @property
58
- def nos(self) -> Nos:
59
- box = Box()
60
- if self._nos is None:
61
- self._nos = box.get("boto_s3_nos")
62
- if self._nos is None:
63
- self._nos = Nos(None)
64
- box.add("boto_s3_nos", self._nos)
65
- return self._nos
66
- """
67
-
68
57
  @property
69
58
  def csvpaths(self):
70
59
  """@private"""
@@ -97,7 +86,22 @@ class FileManager:
97
86
  def files_root_manifest_path(self) -> dict:
98
87
  """@private"""
99
88
  return Nos(self.named_files_dir).join("manifest.json")
100
- # return os.path.join(self.named_files_dir, "manifest.json")
89
+
90
+ def _named_file_ref_to_uuid(self, ref: ReferenceParser) -> str:
91
+ if ref is None:
92
+ raise ValueError("Reference cannot be None")
93
+ finder = FilesReferenceFinder(self._csvpaths, ref=ref)
94
+ lst = finder.resolve()
95
+ if lst is None:
96
+ raise ValueError("ReferenceFinder cannot return None")
97
+ if len(lst) == 0:
98
+ return None
99
+ path = lst[0]
100
+ mani = self.get_manifest(ref.root_major)
101
+ for r in mani:
102
+ if r.get("file") == path:
103
+ return r.get("uuid")
104
+ return None
101
105
 
102
106
  #
103
107
  # namedfile: a NamedFileName (name or reference)
@@ -130,6 +134,11 @@ class FileManager:
130
134
  else None
131
135
  )
132
136
  if ref is not None and file is None:
137
+ #
138
+ # we need to support files as well as results
139
+ #
140
+ if ref.datatype == ref.FILES:
141
+ return self._named_file_ref_to_uuid(ref)
133
142
  if ref.datatype != ref.RESULTS:
134
143
  raise ValueError("Reference must be results, not {ref.datatype}")
135
144
  #
@@ -186,6 +195,13 @@ class FileManager:
186
195
  return _["uuid"]
187
196
  raise ValueError(f"No matching UUID found for file {file} in {name}")
188
197
 
198
+ def get_reference_for_uuid(self, name: NamedFileName, uuid: str) -> str | None:
199
+ mani = self.get_manifest(name)
200
+ for _ in mani:
201
+ if uuid == _["uuid"]:
202
+ return _["reference"]
203
+ return None
204
+
189
205
  def get_manifest(self, name: NamedFileName) -> json:
190
206
  if name is None:
191
207
  raise ValueError("Paths name cannot be None")
@@ -602,6 +618,7 @@ class FileManager:
602
618
  path: str,
603
619
  template: str = None,
604
620
  config: Config = None,
621
+ registration_uuid: str = None,
605
622
  ) -> str | None:
606
623
  #
607
624
  # note that we can pass in a Config with a template that is different
@@ -609,6 +626,19 @@ class FileManager:
609
626
  # using the arg, not the template from the config.
610
627
  #
611
628
  self.csvpaths.logger.info("Adding named file %s from %s", name, path)
629
+ if registration_uuid is not None:
630
+ #
631
+ # check that we have a real uuid and if not blow up before registration
632
+ # blowing up seems right here, rather than checking should_i_raise because
633
+ # we're looking at a serious development problem, rather than a runtime
634
+ # issue driven by the 3rd party or business rules.
635
+ #
636
+ UUID(registration_uuid)
637
+ self.csvpaths.logger.info(
638
+ "Registration of %s will be associated with UUID %s",
639
+ path,
640
+ registration_uuid,
641
+ )
612
642
  if not self.can_load(path):
613
643
  #
614
644
  # if False, can_load() will have already raised an error and/or, minimally,
@@ -716,7 +746,6 @@ class FileManager:
716
746
  #
717
747
  if mark is not None:
718
748
  self._validate_xlsx_mark(path, mark)
719
-
720
749
  #
721
750
  # exp: moving docs and descriptor to above copy_in()
722
751
  #
@@ -729,13 +758,9 @@ class FileManager:
729
758
  self._copy_in(name=name, path=path, home=home, template=template)
730
759
  self.csvpaths.logger.debug("Done copying in")
731
760
  #
732
- #
733
- #
734
761
  # self.assure_docs_and_discriptor(name)
735
762
  # self.csvpaths.logger.debug("Assured docs and discriptor")
736
763
  #
737
- # end exp!
738
- #
739
764
  # create the reference to the bytes/version added to the named-file.
740
765
  # this is the most specific reference possible. we return it when we're
741
766
  # done here.
@@ -754,6 +779,15 @@ class FileManager:
754
779
  name_home = self.named_file_home(name)
755
780
  self.csvpaths.logger.debug("Name home is %s", name_home)
756
781
  mdata = FileMetadata(self.csvpaths.config)
782
+ #
783
+ # add the ability to pass in a UUID. if received, use it here to
784
+ # set the FileMetadata's UUID. this will allow the caller to give a
785
+ # trackable ticket. for e.g. we may want to spin-up a registration in
786
+ # a thread, create our own UUID, pass it in for the registration, and
787
+ # return the UUID to the user so they can retrieve the reference later
788
+ #
789
+ if registration_uuid is not None:
790
+ mdata.uuid_string = registration_uuid
757
791
  mdata.named_file_name = name
758
792
  mdata.named_file_ref = ret
759
793
  #
@@ -767,7 +801,6 @@ class FileManager:
767
801
  mdata.fingerprint = h
768
802
  mdata.file_path = rpath
769
803
  mdata.file_home = file_home
770
- # nos = self.nos
771
804
  nos.path = file_home
772
805
  mdata.file_name = file_home[file_home.rfind(nos.sep) + 1 :]
773
806
  mdata.name_home = name_home
@@ -0,0 +1,46 @@
1
+ import threading
2
+
3
+ from csvpath import CsvPaths
4
+ from csvpath.managers.metadata import Metadata
5
+ from csvpath.managers.listener import Listener
6
+
7
+
8
+ class FileActivationListener(Listener, threading.Thread):
9
+ def __init__(self, *, config=None):
10
+ Listener.__init__(self, config=config)
11
+ threading.Thread.__init__(self)
12
+ # self.csvpaths = None
13
+ #
14
+ # we hold csvpaths on the main thread, but we may not want
15
+ # the csvpaths that triggered this listener activity and
16
+ # shouldn't need it. we'll create our own and not having a
17
+ # csvpaths property means we won't receive a ref to the
18
+ # overall csvpaths context.
19
+ #
20
+ self.my_csvpaths = None
21
+ self.result = None
22
+ self.metadata = None
23
+
24
+ def run(self):
25
+ self._metadata_update(self.metadata)
26
+ self.my_csvpaths.wrap_up()
27
+
28
+ def metadata_update(self, mdata: Metadata) -> None:
29
+ self.metadata = mdata
30
+ self.my_csvpaths = CsvPaths()
31
+ self.start()
32
+
33
+ def _metadata_update(self, mdata: Metadata) -> None:
34
+ #
35
+ # cannot set a new CsvPaths here. crosses qt thread lines and
36
+ # causes a segfault. move ahead of start and/or use listener's
37
+ # own csvpaths. better the former because it is more like what
38
+ # we have today.
39
+ #
40
+ activator = self.my_csvpaths.file_manager.activator
41
+ ref = mdata.named_file_ref
42
+ self.my_csvpaths.logger.info(
43
+ f"Activating for {ref} if any activation is configured"
44
+ )
45
+ activator.activate_if(ref)
46
+ self.my_csvpaths.logger.info(f"Activation for {ref} if any completed")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "csvpath"
3
- version = "0.0.613"
3
+ version = "0.0.615"
4
4
  description = "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
  authors = ["David Kershaw <info@csvpath.org>"]
6
6
  readme = "README.md"
@@ -1,31 +0,0 @@
1
- import threading
2
-
3
-
4
- from csvpath import CsvPaths
5
- from csvpath.managers.metadata import Metadata
6
- from csvpath.managers.listener import Listener
7
-
8
-
9
- class FileActivationListener(Listener, threading.Thread):
10
- def __init__(self, *, config=None):
11
- Listener.__init__(self, config=config)
12
- threading.Thread.__init__(self)
13
- self.csvpaths = None
14
- self.result = None
15
- self.metadata = None
16
-
17
- def run(self):
18
- self._metadata_update(self.metadata)
19
- self.csvpaths.wrap_up()
20
-
21
- def metadata_update(self, mdata: Metadata) -> None:
22
- self.metadata = mdata
23
- self.start()
24
-
25
- def _metadata_update(self, mdata: Metadata) -> None:
26
- csvpaths = CsvPaths()
27
- activator = csvpaths.file_manager.activator
28
- ref = mdata.named_file_ref
29
- csvpaths.logger.info(f"Activating for {ref} if any activation is configured")
30
- activator.activate_if(ref)
31
- csvpaths.logger.info(f"Activation for {ref} if any completed")
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes