csvpath 0.0.598__tar.gz → 0.0.605__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 (402) hide show
  1. {csvpath-0.0.598 → csvpath-0.0.605}/PKG-INFO +40 -36
  2. csvpath-0.0.605/assets/.DS_Store +0 -0
  3. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/config.ini +2 -2
  4. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-local-azure.ini +2 -2
  5. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-local-filesystem-mysql.ini +2 -2
  6. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-local-gcs.ini +6 -7
  7. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-local-s3.ini +2 -2
  8. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-local-sftp.ini +3 -3
  9. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-windows-azure.ini +2 -2
  10. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-windows-gcs.ini +2 -2
  11. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-windows-local.ini +5 -5
  12. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-windows-s3.ini +2 -2
  13. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/jenkins-windows-sftp.ini +3 -3
  14. csvpath-0.0.605/assets/gocd/.DS_Store +0 -0
  15. csvpath-0.0.605/assets/gocd/Mac.goenvironment.json +11 -0
  16. csvpath-0.0.605/assets/gocd/Windows.goenvironment.json +12 -0
  17. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/azure.bat +8 -0
  18. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/gcs.bat +8 -0
  19. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/local.bat +8 -0
  20. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/s3.bat +8 -0
  21. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/sftp.bat +8 -0
  22. csvpath-0.0.605/assets/integrations/.DS_Store +0 -0
  23. csvpath-0.0.605/assets/libs/release_candidate_maker-0.0.25-py3-none-any.whl +0 -0
  24. csvpath-0.0.605/assets/libs/release_candidate_maker-0.0.27-py3-none-any.whl +0 -0
  25. csvpath-0.0.605/assets/libs/release_candidate_maker-0.0.28-py3-none-any.whl +0 -0
  26. csvpath-0.0.605/assets/libs/release_candidate_maker-0.0.29-py3-none-any.whl +0 -0
  27. csvpath-0.0.605/assets/libs/release_candidate_maker-0.0.30.tar.gz +0 -0
  28. csvpath-0.0.605/assets/libs/release_candidate_maker-0.0.31.tar.gz +0 -0
  29. csvpath-0.0.605/assets/libs/release_candidate_maker-0.0.33.tar.gz +0 -0
  30. csvpath-0.0.605/assets/libs/release_candidate_maker-0.0.34.tar.gz +0 -0
  31. csvpath-0.0.605/assets/libs/release_candidate_maker-0.0.35.tar.gz +0 -0
  32. {csvpath-0.0.598 → csvpath-0.0.605}/config/config.ini +2 -2
  33. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/csvpath.py +7 -0
  34. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/csvpaths.py +43 -33
  35. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/errors/error_comms.py +30 -17
  36. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/errors/error_manager.py +21 -11
  37. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sftpplus/rpc.py +3 -1
  38. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sql/engine.py +15 -8
  39. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sql/sql_paths_listener.py +1 -1
  40. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/webhook/webhook_results_listener.py +8 -10
  41. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/paths/paths_describer.py +28 -10
  42. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/paths/paths_manager.py +1 -3
  43. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/results_manager.py +65 -7
  44. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/test_listener.py +2 -2
  45. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/function_factory.py +2 -1
  46. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/lines/dups.py +1 -1
  47. csvpath-0.0.605/csvpath/matching/functions/sql/sql_in.py +115 -0
  48. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/mode_controller.py +7 -1
  49. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/config.py +90 -23
  50. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/config_env.py +12 -2
  51. csvpath-0.0.605/csvpath/util/file_utility.py +30 -0
  52. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/line_spooler.py +21 -9
  53. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/log_utility.py +30 -15
  54. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/path_util.py +5 -8
  55. csvpath-0.0.605/csvpath/util/referrer_printer.py +112 -0
  56. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/var_utility.py +112 -7
  57. {csvpath-0.0.598 → csvpath-0.0.605}/pyproject.toml +45 -43
  58. {csvpath-0.0.598 → csvpath-0.0.605}/LICENSE +0 -0
  59. {csvpath-0.0.598 → csvpath-0.0.605}/README.md +0 -0
  60. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/extra-functions.imports +0 -0
  61. {csvpath-0.0.598 → csvpath-0.0.605}/assets/config/function.imports +0 -0
  62. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/mac/azure-pipeline.gopipeline.json +0 -0
  63. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/mac/azure.sh +0 -0
  64. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/mac/gcs.sh +0 -0
  65. /csvpath-0.0.598/assets/gocd/mac/gcs-pipeline.gopipeline.json → /csvpath-0.0.605/assets/gocd/mac/google-pipeline.gopipeline.json +0 -0
  66. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/mac/local-pipeline.gopipeline copy.json +0 -0
  67. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/mac/local.sh +0 -0
  68. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/mac/s3-pipeline.gopipeline.json +0 -0
  69. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/mac/s3.sh +0 -0
  70. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/mac/sftp-pipeline.gopipeline.json +0 -0
  71. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/mac/sftp.sh +0 -0
  72. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/windows-azure.gopipeline.json +0 -0
  73. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/windows-gcs.gopipeline.json +0 -0
  74. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/windows-local.gopipeline.json +0 -0
  75. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/windows-s3.gopipeline.json +0 -0
  76. {csvpath-0.0.598 → csvpath-0.0.605}/assets/gocd/windows/windows-sftp.gopipeline.json +0 -0
  77. {csvpath-0.0.598 → csvpath-0.0.605}/assets/integrations/sftpplus/handle_auto_arrival.bat +0 -0
  78. {csvpath-0.0.598 → csvpath-0.0.605}/assets/integrations/sftpplus/handle_auto_arrival.py +0 -0
  79. {csvpath-0.0.598 → csvpath-0.0.605}/assets/integrations/sftpplus/handle_auto_arrival.sh +0 -0
  80. {csvpath-0.0.598 → csvpath-0.0.605}/assets/integrations/sftpplus/handle_mailbox_arrival.bat +0 -0
  81. {csvpath-0.0.598 → csvpath-0.0.605}/assets/integrations/sftpplus/handle_mailbox_arrival.py +0 -0
  82. {csvpath-0.0.598 → csvpath-0.0.605}/assets/integrations/sftpplus/handle_mailbox_arrival.sh +0 -0
  83. {csvpath-0.0.598 → csvpath-0.0.605}/assets/integrations/sqlite/csvpath +0 -0
  84. {csvpath-0.0.598 → csvpath-0.0.605}/assets/integrations/sqlite/schema.sql +0 -0
  85. {csvpath-0.0.598 → csvpath-0.0.605}/config/env.json +0 -0
  86. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/__init__.py +0 -0
  87. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/cli/__init__.py +0 -0
  88. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/cli/asker.py +0 -0
  89. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/cli/cli.py +0 -0
  90. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/cli/const.py +0 -0
  91. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/cli/debug_config.py +0 -0
  92. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/cli/drill_down.py +0 -0
  93. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/cli/function_describer.py +0 -0
  94. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/cli/function_lister.py +0 -0
  95. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/cli/selecter.py +0 -0
  96. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/__init__.py +0 -0
  97. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/errors/error.py +0 -0
  98. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/errors/error_collector.py +0 -0
  99. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/files/file_activator.py +0 -0
  100. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/files/file_describer.py +0 -0
  101. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/files/file_manager.py +0 -0
  102. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/files/file_metadata.py +0 -0
  103. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/files/file_registrar.py +0 -0
  104. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/files/files_activation_listener.py +0 -0
  105. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/files/files_listener.py +0 -0
  106. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/files/lines_and_headers_cacher.py +0 -0
  107. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ckan/ckan.py +0 -0
  108. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ckan/ckan_listener.py +0 -0
  109. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ckan/datafile.py +0 -0
  110. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ckan/dataset.py +0 -0
  111. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/event.py +0 -0
  112. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/event_result.py +0 -0
  113. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/file_listener_ol.py +0 -0
  114. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/job.py +0 -0
  115. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/ol_listener.py +0 -0
  116. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/paths_listener_ol.py +0 -0
  117. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/result_listener_ol.py +0 -0
  118. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/results_listener_ol.py +0 -0
  119. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/run.py +0 -0
  120. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/run_listener_ol.py +0 -0
  121. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/run_state.py +0 -0
  122. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/ol/sender.py +0 -0
  123. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/otlp/error_metrics.py +0 -0
  124. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/otlp/metrics.py +0 -0
  125. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/otlp/otlp_error_listener.py +0 -0
  126. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/otlp/otlp_file_listener.py +0 -0
  127. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/otlp/otlp_listener.py +0 -0
  128. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/otlp/otlp_paths_listener.py +0 -0
  129. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/otlp/otlp_result_listener.py +0 -0
  130. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/otlp/otlp_results_listener.py +0 -0
  131. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/scripts/scripts_results_listener.py +0 -0
  132. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sftp/sftp_sender.py +0 -0
  133. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sftpplus/arrival_handler.py +0 -0
  134. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sftpplus/sftpplus_listener.py +0 -0
  135. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sftpplus/transfer_creator.py +0 -0
  136. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sftpplus/transfers.py +0 -0
  137. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/slack/event.py +0 -0
  138. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/slack/sender.py +0 -0
  139. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sql/sql_file_listener.py +0 -0
  140. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sql/sql_listener.py +0 -0
  141. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sql/sql_result_listener.py +0 -0
  142. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sql/sql_results_listener.py +0 -0
  143. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sql/tables.py +0 -0
  144. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sql/updates.py +0 -0
  145. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sqlite/schema.sql +0 -0
  146. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sqlite/sqlite_result_listener.py +0 -0
  147. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/sqlite/sqlite_results_listener.py +0 -0
  148. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/integrations/webhook/webhook_listener.py +0 -0
  149. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/listener.py +0 -0
  150. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/metadata.py +0 -0
  151. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/paths/paths_listener.py +0 -0
  152. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/paths/paths_metadata.py +0 -0
  153. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/paths/paths_registrar.py +0 -0
  154. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/registrar.py +0 -0
  155. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/readers/file_errors_reader.py +0 -0
  156. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/readers/file_lines_reader.py +0 -0
  157. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/readers/file_printouts_reader.py +0 -0
  158. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/readers/file_unmatched_reader.py +0 -0
  159. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/readers/readers.py +0 -0
  160. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/result.py +0 -0
  161. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/result_file_reader.py +0 -0
  162. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/result_metadata.py +0 -0
  163. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/result_registrar.py +0 -0
  164. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/result_serializer.py +0 -0
  165. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/results_metadata.py +0 -0
  166. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/results/results_registrar.py +0 -0
  167. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/run/run_listener_stdout.py +0 -0
  168. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/run/run_metadata.py +0 -0
  169. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/managers/run/run_registrar.py +0 -0
  170. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/__init__.py +0 -0
  171. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/__init__.py +0 -0
  172. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/args.py +0 -0
  173. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/args_helper.py +0 -0
  174. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/all.py +0 -0
  175. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/andf.py +0 -0
  176. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/any.py +0 -0
  177. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/between.py +0 -0
  178. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/empty.py +0 -0
  179. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/exists.py +0 -0
  180. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/inf.py +0 -0
  181. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/no.py +0 -0
  182. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/notf.py +0 -0
  183. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/orf.py +0 -0
  184. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/boolean/yes.py +0 -0
  185. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/count.py +0 -0
  186. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/count_bytes.py +0 -0
  187. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/count_headers.py +0 -0
  188. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/count_lines.py +0 -0
  189. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/count_scans.py +0 -0
  190. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/counter.py +0 -0
  191. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/every.py +0 -0
  192. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/has_matches.py +0 -0
  193. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/increment.py +0 -0
  194. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/tally.py +0 -0
  195. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/counting/total_lines.py +0 -0
  196. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/dates/now.py +0 -0
  197. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/dates/part.py +0 -0
  198. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/dates/roll.py +0 -0
  199. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/function.py +0 -0
  200. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/function_finder.py +0 -0
  201. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/function_focus.py +0 -0
  202. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/append.py +0 -0
  203. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/collect.py +0 -0
  204. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/empty_stack.py +0 -0
  205. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/end.py +0 -0
  206. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/header_name.py +0 -0
  207. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/header_names_mismatch.py +0 -0
  208. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/headers.py +0 -0
  209. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/headers_stack.py +0 -0
  210. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/insert.py +0 -0
  211. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/line_before.py +0 -0
  212. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/mismatch.py +0 -0
  213. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/remove.py +0 -0
  214. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/rename.py +0 -0
  215. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/replace.py +0 -0
  216. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/headers/reset_headers.py +0 -0
  217. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/json/jsonpath.py +0 -0
  218. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/lines/advance.py +0 -0
  219. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/lines/after_blank.py +0 -0
  220. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/lines/first.py +0 -0
  221. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/lines/first_line.py +0 -0
  222. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/lines/last.py +0 -0
  223. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/lines/stop.py +0 -0
  224. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/above.py +0 -0
  225. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/add.py +0 -0
  226. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/divide.py +0 -0
  227. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/equals.py +0 -0
  228. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/intf.py +0 -0
  229. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/mod.py +0 -0
  230. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/multiply.py +0 -0
  231. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/odd.py +0 -0
  232. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/round.py +0 -0
  233. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/subtotal.py +0 -0
  234. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/subtract.py +0 -0
  235. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/math/sum.py +0 -0
  236. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/misc/fingerprint.py +0 -0
  237. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/misc/importf.py +0 -0
  238. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/misc/parquet.py +0 -0
  239. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/misc/random.py +0 -0
  240. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/print/jinjaf.py +0 -0
  241. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/print/print_line.py +0 -0
  242. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/print/print_queue.py +0 -0
  243. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/print/printf.py +0 -0
  244. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/print/table.py +0 -0
  245. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/stats/minf.py +0 -0
  246. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/stats/nminmax.py +0 -0
  247. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/stats/percent.py +0 -0
  248. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/stats/percent_unique.py +0 -0
  249. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/stats/stdev.py +0 -0
  250. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/alter.py +0 -0
  251. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/caps.py +0 -0
  252. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/concat.py +0 -0
  253. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/contains.py +0 -0
  254. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/format.py +0 -0
  255. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/length.py +0 -0
  256. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/lower.py +0 -0
  257. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/metaphone.py +0 -0
  258. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/regex.py +0 -0
  259. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/starts_with.py +0 -0
  260. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/strip.py +0 -0
  261. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/substring.py +0 -0
  262. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/strings/upper.py +0 -0
  263. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/testing/debug.py +0 -0
  264. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/__init__.py +0 -0
  265. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/blank.py +0 -0
  266. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/boolean.py +0 -0
  267. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/datatype.py +0 -0
  268. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/datef.py +0 -0
  269. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/decimal.py +0 -0
  270. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/email.py +0 -0
  271. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/nonef.py +0 -0
  272. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/string.py +0 -0
  273. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/type.py +0 -0
  274. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/url.py +0 -0
  275. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/types/wildcard.py +0 -0
  276. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/validity/fail.py +0 -0
  277. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/validity/failed.py +0 -0
  278. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/validity/line.py +0 -0
  279. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/validity/matches.py +0 -0
  280. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/validity/percent_matching.py +0 -0
  281. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/variables/clear.py +0 -0
  282. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/variables/get.py +0 -0
  283. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/variables/index_of.py +0 -0
  284. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/variables/pushpop.py +0 -0
  285. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/variables/put.py +0 -0
  286. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/variables/slice.py +0 -0
  287. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/variables/sort.py +0 -0
  288. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/variables/track.py +0 -0
  289. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/variables/variables.py +0 -0
  290. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/functions/xml/xpath.py +0 -0
  291. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/lark_parser.py +0 -0
  292. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/lark_transformer.py +0 -0
  293. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/matcher.py +0 -0
  294. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/productions/__init__.py +0 -0
  295. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/productions/equality.py +0 -0
  296. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/productions/expression.py +0 -0
  297. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/productions/header.py +0 -0
  298. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/productions/matchable.py +0 -0
  299. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/productions/qualified.py +0 -0
  300. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/productions/reference.py +0 -0
  301. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/productions/term.py +0 -0
  302. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/productions/variable.py +0 -0
  303. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/util/exceptions.py +0 -0
  304. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/util/expression_encoder.py +0 -0
  305. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/util/expression_utility.py +0 -0
  306. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/util/lark_print_parser.py +0 -0
  307. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/util/parquet_utility.py +0 -0
  308. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/util/print_parser.py +0 -0
  309. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/matching/util/runtime_data_collector.py +0 -0
  310. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/error_mode.py +0 -0
  311. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/explain_mode.py +0 -0
  312. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/files_mode.py +0 -0
  313. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/logic_mode.py +0 -0
  314. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/print_mode.py +0 -0
  315. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/return_mode.py +0 -0
  316. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/run_mode.py +0 -0
  317. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/source_mode.py +0 -0
  318. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/transfer_mode.py +0 -0
  319. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/unmatched_mode.py +0 -0
  320. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/modes/validation_mode.py +0 -0
  321. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/scanning/__init__.py +0 -0
  322. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/scanning/scanner2.py +0 -0
  323. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/scanning/scanner2_parser.py +0 -0
  324. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/scanning/scanner2_transformer.py +0 -0
  325. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/azure/azure_data_reader.py +0 -0
  326. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/azure/azure_data_writer.py +0 -0
  327. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/azure/azure_fingerprinter.py +0 -0
  328. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/azure/azure_json_data_reader.py +0 -0
  329. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/azure/azure_nos.py +0 -0
  330. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/azure/azure_utils.py +0 -0
  331. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/azure/azure_xlsx_data_reader.py +0 -0
  332. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/backend_check.py +0 -0
  333. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/box.py +0 -0
  334. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/cache.py +0 -0
  335. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/caser.py +0 -0
  336. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/class_loader.py +0 -0
  337. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/code.py +0 -0
  338. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/config_exception.py +0 -0
  339. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/date_util.py +0 -0
  340. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/exceptions.py +0 -0
  341. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/file_info.py +0 -0
  342. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/file_readers.py +0 -0
  343. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/file_writers.py +0 -0
  344. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/gcs/gcs_data_reader.py +0 -0
  345. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/gcs/gcs_data_writer.py +0 -0
  346. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/gcs/gcs_fingerprinter.py +0 -0
  347. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/gcs/gcs_json_data_reader.py +0 -0
  348. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/gcs/gcs_nos.py +0 -0
  349. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/gcs/gcs_utils.py +0 -0
  350. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/gcs/gcs_xlsx_data_reader.py +0 -0
  351. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/hasher.py +0 -0
  352. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/http/http_data_reader.py +0 -0
  353. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/intermediary.py +0 -0
  354. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/json/json_data_reader.py +0 -0
  355. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/json/json_reader_helper.py +0 -0
  356. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/last_line_stats.py +0 -0
  357. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/line_counter.py +0 -0
  358. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/line_monitor.py +0 -0
  359. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/metadata_parser.py +0 -0
  360. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/nos.py +0 -0
  361. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/pandas_data_reader.py +0 -0
  362. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/printer.py +0 -0
  363. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/py_file_utility.py +0 -0
  364. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/files_reference_finder_2.py +0 -0
  365. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/files_tools/fingerprint_finder.py +0 -0
  366. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/files_tools/range_finder.py +0 -0
  367. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/ref_utils.py +0 -0
  368. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/reference_exceptions.py +0 -0
  369. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/reference_grammar.py +0 -0
  370. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/reference_manifest_entry_finder.py +0 -0
  371. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/reference_parser.py +0 -0
  372. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/reference_results.py +0 -0
  373. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/reference_transformer.py +0 -0
  374. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/results_reference_finder_2.py +0 -0
  375. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/results_tools/data_finder.py +0 -0
  376. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/results_tools/date_filter.py +0 -0
  377. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/results_tools/identity_finder.py +0 -0
  378. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/results_tools/path_filter.py +0 -0
  379. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/results_tools/resolve_possibles.py +0 -0
  380. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/results_tools/token_filters.py +0 -0
  381. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/results_tools/yesterday_or_today_translator.py +0 -0
  382. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/references/tools/date_completer.py +0 -0
  383. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/run_home_maker.py +0 -0
  384. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/s3/s3_data_reader.py +0 -0
  385. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/s3/s3_data_writer.py +0 -0
  386. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/s3/s3_fingerprinter.py +0 -0
  387. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/s3/s3_json_data_reader.py +0 -0
  388. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/s3/s3_nos.py +0 -0
  389. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/s3/s3_utils.py +0 -0
  390. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/s3/s3_xlsx_data_reader.py +0 -0
  391. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/sftp/sftp_config.py +0 -0
  392. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/sftp/sftp_data_reader.py +0 -0
  393. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/sftp/sftp_data_writer.py +0 -0
  394. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/sftp/sftp_fingerprinter.py +0 -0
  395. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/sftp/sftp_json_data_reader.py +0 -0
  396. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/sftp/sftp_nos.py +0 -0
  397. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/sftp/sftp_walk.py +0 -0
  398. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/sftp/sftp_xlsx_data_reader.py +0 -0
  399. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/sqliter.py +0 -0
  400. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/template_util.py +0 -0
  401. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/xlsx/xlsx_data_reader.py +0 -0
  402. {csvpath-0.0.598 → csvpath-0.0.605}/csvpath/util/xlsx/xlsx_reader_helper.py +0 -0
@@ -1,7 +1,8 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: csvpath
3
- Version: 0.0.598
3
+ Version: 0.0.605
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
+ License-File: LICENSE
5
6
  Author: David Kershaw
6
7
  Author-email: info@csvpath.org
7
8
  Requires-Python: >3.10,<4.0
@@ -13,6 +14,7 @@ Classifier: Programming Language :: Python :: 3
13
14
  Classifier: Programming Language :: Python :: 3.11
14
15
  Classifier: Programming Language :: Python :: 3.12
15
16
  Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
16
18
  Classifier: Topic :: File Formats
17
19
  Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
18
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
@@ -21,40 +23,42 @@ Classifier: Topic :: Software Development :: Testing
21
23
  Classifier: Topic :: Text Processing
22
24
  Classifier: Topic :: Utilities
23
25
  Provides-Extra: pandas
24
- Requires-Dist: azure-storage-blob (>=12.24.1,<13.0.0)
25
- Requires-Dist: boto3 (>=1.35.91,<2.0.0)
26
- Requires-Dist: ckanapi (>=4.8,<5.0)
27
- Requires-Dist: email-validator (>=2.2.0,<3.0.0)
28
- Requires-Dist: google-cloud-storage (>=3.1.0,<4.0.0)
29
- Requires-Dist: inflect (>=7.4.0,<8.0.0)
30
- Requires-Dist: jinja2 (>=3.1.6,<4.0.0)
31
- Requires-Dist: jsonlines (>=4.0.0,<5.0.0)
32
- Requires-Dist: jsonpath-ng (>=1.7.0,<2.0.0)
33
- Requires-Dist: jsonpickle (>=4.1.1,<5.0.0)
34
- Requires-Dist: lark (>=1.2.2,<2.0.0)
35
- Requires-Dist: lxml (>=6.0.2,<7.0.0)
36
- Requires-Dist: marquez-python (>=0.50.0,<0.51.0)
37
- Requires-Dist: metaphone (>=0.6,<0.7)
38
- Requires-Dist: mysqlclient (>=2.2.7,<3.0.0)
39
- Requires-Dist: openlineage-python (>=1.25.0,<2.0.0)
40
- Requires-Dist: opentelemetry-distro[otlp] (>=0.50b0,<0.51)
41
- Requires-Dist: pandas (>=2.2.2,<3.0.0) ; extra == "pandas"
42
- Requires-Dist: paramiko (>=3.5.0,<4.0.0)
43
- Requires-Dist: pdoc (>=15.0.1,<16.0.0)
44
- Requires-Dist: prompt-toolkit (>=3.0.50,<4.0.0)
45
- Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0)
46
- Requires-Dist: pyarrow (>=23.0.1,<24.0.0)
47
- Requires-Dist: pydantic (>=2.12.5,<3.0.0)
48
- Requires-Dist: pyjson5 (>=2.0.0,<3.0.0)
49
- Requires-Dist: pylightxl (>=1.61,<2.0)
50
- Requires-Dist: pytest (>=8.3.3,<9.0.0)
51
- Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
52
- Requires-Dist: pytz (>=2024.2,<2025.0)
53
- Requires-Dist: requests (>=2.32.3,<3.0.0)
54
- Requires-Dist: smart-open[all] (>=7.1.0,<8.0.0)
55
- Requires-Dist: sqlalchemy (>=2.0.38,<3.0.0)
56
- Requires-Dist: tabulate (>=0.9.0,<0.10.0)
57
- Requires-Dist: validators (>=0.34.0,<0.35.0)
26
+ Requires-Dist: azure-storage-blob (==12.28.0)
27
+ Requires-Dist: boto3 (==1.42.65)
28
+ Requires-Dist: ckanapi (==4.9)
29
+ Requires-Dist: email-validator (==2.3.0)
30
+ Requires-Dist: google-cloud-storage (==3.9.0)
31
+ Requires-Dist: inflect (==7.5.0)
32
+ Requires-Dist: jinja2 (==3.1.6)
33
+ Requires-Dist: jsonlines (==4.0.0)
34
+ Requires-Dist: jsonpath-ng (==1.8.0)
35
+ Requires-Dist: jsonpickle (==4.1.1)
36
+ Requires-Dist: lark (==1.3.1)
37
+ Requires-Dist: lxml (==6.0.2)
38
+ Requires-Dist: marquez-python (==0.50.0)
39
+ Requires-Dist: metaphone (==0.6)
40
+ Requires-Dist: mysqlclient (==2.2.8)
41
+ Requires-Dist: openlineage-python (==1.45.0)
42
+ Requires-Dist: opentelemetry-distro[otlp] (==0.50b0)
43
+ Requires-Dist: pandas (==2.3.3) ; extra == "pandas"
44
+ Requires-Dist: paramiko (==3.5.1)
45
+ Requires-Dist: pdoc (==15.0.4)
46
+ Requires-Dist: prompt-toolkit (==3.0.52)
47
+ Requires-Dist: psutil (>=7.2.2,<8.0.0)
48
+ Requires-Dist: psycopg2-binary (==2.9.11)
49
+ Requires-Dist: pyarrow (==23.0.1)
50
+ Requires-Dist: pydantic (==2.12.5)
51
+ Requires-Dist: pyjson5 (==2.0.0)
52
+ Requires-Dist: pylightxl (==1.61)
53
+ Requires-Dist: pytest (==8.4.2)
54
+ Requires-Dist: python-dateutil (==2.9.0.post0)
55
+ Requires-Dist: pytz (==2024.2)
56
+ Requires-Dist: requests (==2.32.5)
57
+ Requires-Dist: ruff (>=0.15.8,<0.16.0)
58
+ Requires-Dist: smart-open[all] (==7.5.1)
59
+ Requires-Dist: sqlalchemy (==2.0.48)
60
+ Requires-Dist: tabulate (==0.9.0)
61
+ Requires-Dist: validators (==0.34.0)
58
62
  Project-URL: Csvpath.org, https://www.csvpath.org
59
63
  Project-URL: Github, https://github.com/csvpath/csvpath.git
60
64
  Description-Content-Type: text/markdown
Binary file
@@ -81,8 +81,8 @@ slack.results = from csvpath.managers.integrations.slack.sender import SlackSend
81
81
  [gcs]
82
82
 
83
83
  [sftp]
84
- server = 192.168.1.152
85
- port = 2022
84
+ server = SFTP_SERVER
85
+ port = SFTP_PORT
86
86
  username = python
87
87
  password = hangzhou
88
88
 
@@ -74,8 +74,8 @@ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_lis
74
74
  [gcs]
75
75
 
76
76
  [sftp]
77
- server = 192.168.1.152
78
- port = 2022
77
+ server = SFTP_SERVER
78
+ port = SFTP_PORT
79
79
  username = python
80
80
  password = hangzhou
81
81
 
@@ -77,8 +77,8 @@ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_lis
77
77
  #
78
78
 
79
79
  [sftp]
80
- server = 192.168.1.152
81
- port = 2022
80
+ server = SFTP_SERVER
81
+ port = SFTP_PORT
82
82
  username = python
83
83
  password = hangzhou
84
84
 
@@ -31,7 +31,7 @@ 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
@@ -44,7 +44,7 @@ allow_http_files = True
44
44
  allow_local_files = True
45
45
 
46
46
  [listeners]
47
- groups =
47
+ groups = default
48
48
  sqlite.result = from csvpath.managers.integrations.sqlite.sqlite_result_listener import SqliteResultListener
49
49
  sqlite.results = from csvpath.managers.integrations.sqlite.sqlite_results_listener import SqliteResultsListener
50
50
  default.file = from csvpath.managers.files.files_listener import FilesListener
@@ -74,12 +74,11 @@ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_lis
74
74
  [gcs]
75
75
 
76
76
  [sftp]
77
- server = 192.168.1.152
78
- port = 2022
77
+ server = SFTP_SERVER
78
+ port = SFTP_PORT
79
79
  username = python
80
80
  password = hangzhou
81
81
 
82
-
83
82
  [sqlite]
84
83
  db = archive/csvpath.db
85
84
 
@@ -91,7 +90,7 @@ port = SFTPPLUS_PORT
91
90
  admin_username = SFTPPLUS_ADMIN_USERNAME
92
91
  admin_password = SFTPPLUS_ADMIN_PASSWORD
93
92
  api_url = https://. . . :10020/json
94
- scripts_dir =
93
+ scripts_dir =
95
94
  execute_timeout = 300
96
95
 
97
96
  [ckan]
@@ -106,5 +105,5 @@ timeout = 5
106
105
  verify = False
107
106
 
108
107
  [slack]
109
- webhook_url =
108
+ webhook_url =
110
109
 
@@ -74,8 +74,8 @@ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_lis
74
74
  [gcs]
75
75
 
76
76
  [sftp]
77
- server = 192.168.1.152
78
- port = 2022
77
+ server = SFTP_SERVER
78
+ port = SFTP_PORT
79
79
  username = python
80
80
  password = hangzhou
81
81
 
@@ -31,7 +31,7 @@ imports =
31
31
  archive = tmp/sftp/archive
32
32
 
33
33
  [inputs]
34
- files = sftp://192.168.1.152:2022/mac/inputs/named_files
34
+ files = sftp://{SFTP_SERVER}:{SFTP_PORT}/mac/inputs/named_files
35
35
  csvpaths = tmp/sftp/inputs/named_paths
36
36
  on_unmatched_file_fingerprints = halt
37
37
  allow_http_files = True
@@ -78,8 +78,8 @@ shell = /bin/bash
78
78
  [gcs]
79
79
 
80
80
  [sftp]
81
- server = 192.168.1.152
82
- port = 2022
81
+ server = SFTP_SERVER
82
+ port = SFTP_PORT
83
83
  username = python
84
84
  password = hangzhou
85
85
 
@@ -72,8 +72,8 @@ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_lis
72
72
  run_scripts=yes
73
73
 
74
74
  [sftp]
75
- server = 192.168.1.152
76
- port = 2022
75
+ server = SFTP_SERVER
76
+ port = SFTP_PORT
77
77
  username = python
78
78
  password = hangzhou
79
79
 
@@ -111,8 +111,8 @@ slack.results = from csvpath.managers.integrations.slack.sender import SlackSend
111
111
  #
112
112
 
113
113
  [sftp]
114
- server = 192.168.1.152
115
- port = 2022
114
+ server = SFTP_SERVER
115
+ port = SFTP_PORT
116
116
  username = python
117
117
  password = hangzhou
118
118
 
@@ -26,7 +26,7 @@ path = cache
26
26
  use_cache = no
27
27
 
28
28
  [functions]
29
- imports =
29
+ imports =
30
30
 
31
31
  [results]
32
32
  archive = tmp\local\archive
@@ -69,8 +69,8 @@ slack.results = from csvpath.managers.integrations.slack.sender import SlackSend
69
69
  [gcs]
70
70
 
71
71
  [sftp]
72
- server = 192.168.1.152
73
- port = 2022
72
+ server = SFTP_SERVER
73
+ port = SFTP_PORT
74
74
  username = python
75
75
  password = hangzhou
76
76
 
@@ -85,7 +85,7 @@ port = SFTPPLUS_PORT
85
85
  admin_username = SFTPPLUS_ADMIN_USERNAME
86
86
  admin_password = SFTPPLUS_ADMIN_PASSWORD
87
87
  api_url = https://. . . :10020/json
88
- scripts_dir =
88
+ scripts_dir =
89
89
  execute_timeout = 300
90
90
 
91
91
  [ckan]
@@ -100,7 +100,7 @@ timeout = 5
100
100
  verify = False
101
101
 
102
102
  [slack]
103
- webhook_url =
103
+ webhook_url =
104
104
 
105
105
  [scripts]
106
106
  run_scripts = yes
@@ -74,8 +74,8 @@ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_lis
74
74
  [gcs]
75
75
 
76
76
  [sftp]
77
- server = 192.168.1.152
78
- port = 2022
77
+ server = SFTP_SERVER
78
+ port = SFTP_PORT
79
79
  username = python
80
80
  password = hangzhou
81
81
 
@@ -40,7 +40,7 @@ imports =
40
40
  archive = tmp\sftp\archive
41
41
 
42
42
  [inputs]
43
- files = sftp://192.168.1.152:2022/windows/inputs\named_files
43
+ files = sftp://{SFTP_SERVER}:{SFTP_PORT}/windows/inputs/named_files
44
44
  csvpaths = tmp\sftp\inputs\named_paths
45
45
  on_unmatched_file_fingerprints = halt
46
46
  allow_http_files=True
@@ -112,8 +112,8 @@ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_lis
112
112
  #
113
113
 
114
114
  [sftp]
115
- server = 192.168.1.152
116
- port = 2022
115
+ server = SFTP_SERVER
116
+ port = SFTP_PORT
117
117
  username = python
118
118
  password = hangzhou
119
119
 
Binary file
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "Mac",
3
+ "pipelines": [
4
+ "azure-pipeline",
5
+ "google-pipeline",
6
+ "s3-pipeline",
7
+ "sftp-pipeline"
8
+ ],
9
+ "agents": []
10
+ }
11
+
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "Windows",
3
+ "pipelines": [
4
+ "windows-azure",
5
+ "windows-gcs",
6
+ "windows-s3",
7
+ "windows-sftp",
8
+ "windows-local"
9
+ ],
10
+ "agents": []
11
+ }
12
+
@@ -30,3 +30,11 @@ cmd.exe /C c:\Users\python\.local\bin\poetry.exe install
30
30
  cmd.exe /C c:\Users\python\.local\bin\poetry.exe run pytest
31
31
 
32
32
 
33
+ net stop w32time
34
+ w32tm /unregister
35
+ w32tm /register
36
+ net start w32time
37
+ timeout /t 1
38
+ w32tm /resync
39
+
40
+
@@ -29,3 +29,11 @@ cmd.exe /C c:\Users\python\.local\bin\poetry.exe install
29
29
  cmd.exe /C c:\Users\python\.local\bin\poetry.exe run pytest
30
30
 
31
31
 
32
+ net stop w32time
33
+ w32tm /unregister
34
+ w32tm /register
35
+ net start w32time
36
+ timeout /t 1
37
+ w32tm /resync
38
+
39
+
@@ -53,3 +53,11 @@ cmd.exe /C c:\Users\python\.local\bin\poetry.exe install
53
53
  cmd.exe /C c:\Users\python\.local\bin\poetry.exe run pytest
54
54
 
55
55
 
56
+ net stop w32time
57
+ w32tm /unregister
58
+ w32tm /register
59
+ net start w32time
60
+ timeout /t 1
61
+ w32tm /resync
62
+
63
+
@@ -31,3 +31,11 @@ cmd.exe /C c:\Users\python\.local\bin\poetry.exe install
31
31
  cmd.exe /C c:\Users\python\.local\bin\poetry.exe run pytest
32
32
 
33
33
 
34
+ net stop w32time
35
+ w32tm /unregister
36
+ w32tm /register
37
+ net start w32time
38
+ timeout /t 1
39
+ w32tm /resync
40
+
41
+
@@ -29,3 +29,11 @@ cmd.exe /C c:\Users\python\.local\bin\poetry.exe install
29
29
  cmd.exe /C c:\Users\python\.local\bin\poetry.exe run pytest
30
30
 
31
31
 
32
+ net stop w32time
33
+ w32tm /unregister
34
+ w32tm /register
35
+ net start w32time
36
+ timeout /t 1
37
+ w32tm /resync
38
+
39
+
@@ -48,7 +48,7 @@ allow_http_files = True
48
48
  allow_local_files = True
49
49
 
50
50
  [listeners]
51
- groups = default,scripts
51
+ groups = default
52
52
  webhook.results = from csvpath.managers.integrations.webhook.webhook_results_listener import WebhookResultsListener
53
53
  scripts.results = from csvpath.managers.integrations.scripts.scripts_results_listener import ScriptsResultsListener
54
54
  sql.file = from csvpath.managers.integrations.sql.sql_file_listener import SqlFileListener
@@ -85,7 +85,7 @@ slack.results = from csvpath.managers.integrations.slack.sender import SlackSend
85
85
  [gcs]
86
86
 
87
87
  [sftp]
88
- server = 192.168.1.152
88
+ server = SFTP_SERVER
89
89
  port = 2022
90
90
  username = python
91
91
  password = hangzhou
@@ -54,6 +54,13 @@ class CsvPath(ErrorCollector, Printer): # pylint: disable=R0902, R0904
54
54
  skip_blank_lines=True,
55
55
  print_default=True,
56
56
  # config=None,
57
+ #
58
+ # atm, we don't use this error manager reference. instead we make
59
+ # an error manager for this csvpath, and if we have a csvpaths we
60
+ # add its error_manager as an internal listener for error events
61
+ #
62
+ # we can refactor this reference away
63
+ #
57
64
  error_manager=None,
58
65
  project_context="no_project_context",
59
66
  project="no_project_name",
@@ -1,15 +1,15 @@
1
- """ CsvPaths' intent is to help you manage and automate your use
2
- of the CsvPath library. it makes it easier to scale your CSV quality control. """
1
+ """CsvPaths' intent is to help you manage and automate your use
2
+ of the CsvPath library. it makes it easier to scale your CSV quality control."""
3
3
 
4
4
  import os
5
5
  import traceback
6
6
  import atexit
7
7
  import threading
8
8
 
9
- from uuid import uuid4, UUID
9
+ from uuid import uuid4
10
10
  from abc import ABC, abstractmethod
11
11
  from typing import List, Any, NewType
12
- from datetime import datetime, timezone
12
+ from datetime import datetime
13
13
  from .managers.errors.error import Error
14
14
  from .managers.errors.error_comms import ErrorCommunications
15
15
  from .managers.errors.error_manager import ErrorManager
@@ -26,7 +26,6 @@ from .managers.results.results_manager import ResultsManager
26
26
  from .managers.results.result import Result
27
27
  from .util.box import Box
28
28
  from . import CsvPath
29
- from .managers.integrations.otlp.metrics import Metrics
30
29
 
31
30
 
32
31
  # types for clarity
@@ -108,7 +107,7 @@ class CsvPaths(CsvPathsCoordinator, ErrorCollector):
108
107
  skip_blank_lines=True,
109
108
  print_default=True,
110
109
  project_context=None,
111
- project=None
110
+ project=None,
112
111
  # config: Config = None,
113
112
  ):
114
113
  if CsvPaths.METRICS_WRAP_REG is False:
@@ -219,7 +218,14 @@ class CsvPaths(CsvPathsCoordinator, ErrorCollector):
219
218
  # that need to know about the run during the run; e.g. parquet()
220
219
  #
221
220
  self._csvpath_instances = []
222
-
221
+ #
222
+ # any listeners added here will be added to the internal_listeners of
223
+ # the csvpath instances that run.
224
+ #
225
+ self.dynamic_csvpath_error_listeners = []
226
+ #
227
+ #
228
+ #
223
229
  self.logger.info(
224
230
  f"Initialized CsvPaths: {self} in thread: {threading.current_thread()}"
225
231
  )
@@ -278,40 +284,42 @@ class CsvPaths(CsvPathsCoordinator, ErrorCollector):
278
284
  return f"""
279
285
  Context: {self.project_context}.{self.project}
280
286
  Logger: {logstr}
281
- Configured log path: {self.config.get(section='logging', name='log_file')}
287
+ Configured log path: {self.config.get(section="logging", name="log_file")}
282
288
  Current log paths: {logpath}
283
289
  Config file: {self.config.configpath}
284
- Var sub source: {self.config.get(section='config', name='var_sub_source')}
290
+ Var sub source: {self.config.get(section="config", name="var_sub_source")}
285
291
  Var subs: {subs}
286
292
  Errors:
287
- - csvpath: {self.config.get(section='errors', name='csvpath')}
288
- - csvpaths: {self.config.get(section='errors', name='csvpaths')}
289
- Named-files: {self.config.get(section='inputs', name='files')}
290
- Named-paths: {self.config.get(section='inputs', name='files')}
291
- Archive: {self.config.get(section='results', name='archive')}
293
+ - csvpath: {self.config.get(section="errors", name="csvpath")}
294
+ - csvpaths: {self.config.get(section="errors", name="csvpaths")}
295
+ Named-files: {self.config.get(section="inputs", name="files")}
296
+ Named-paths: {self.config.get(section="inputs", name="files")}
297
+ Archive: {self.config.get(section="results", name="archive")}
292
298
  Cache: {cache}
293
299
  {lstrs}
294
300
  """
295
301
 
296
- """
297
- def info_dump(self) -> None:
298
- self.logger.info(
299
- "Initated logging on log path: %s",
300
- self.config.get(section="logging", name="log_file"),
301
- )
302
- self.logger.info("Config file is at: %s", self.config.configpath)
303
- intgs = self.config.get(section="listeners", name="groups")
304
- self.logger.debug("Active integrations:")
305
- for _ in intgs:
306
- self.logger.debug(" - %s", _)
307
- """
308
-
309
302
  def _set_managers(self) -> None:
310
303
  self.paths_manager = PathsManager(csvpaths=self)
311
304
  self.file_manager = FileManager(csvpaths=self)
312
- self.results_manager = ResultsManager(csvpaths=self)
313
305
  self.ecoms = ErrorCommunications(csvpaths=self)
314
306
  self.error_manager = ErrorManager(csvpaths=self)
307
+ #
308
+ # we take a bit more care with resman because it may have listeners
309
+ # that are set programmatically. other managers deal with their
310
+ # registrars differently and don't have the problem of maintaining
311
+ # lists of listeners at the csvpaths level
312
+ #
313
+ resman = ResultsManager(csvpaths=self)
314
+ if self.results_manager:
315
+ resman.dynamic_result_listeners = (
316
+ self.results_manager.dynamic_result_listeners
317
+ )
318
+ resman.dynamic_results_listeners = (
319
+ self.results_manager.dynamic_results_listeners
320
+ )
321
+ resman.dynamic_run_listeners = self.results_manager.dynamic_run_listeners
322
+ self.results_manager = resman
315
323
 
316
324
  @property
317
325
  def project(self) -> str:
@@ -422,6 +430,9 @@ Cache: {cache}
422
430
  #
423
431
  # config=None,
424
432
  print_default=self.print_default,
433
+ #
434
+ # we don't use this error manager reference atm.
435
+ #
425
436
  error_manager=self.error_manager,
426
437
  project=self.project,
427
438
  project_context=self.project_context,
@@ -429,6 +440,8 @@ Cache: {cache}
429
440
  if path.config.configpath != self.config.configpath:
430
441
  path.config.set_config_path_and_reload(self.config.configpath)
431
442
  path.logger = None
443
+ for _ in self.dynamic_csvpath_error_listeners:
444
+ path.error_manager.add_internal_listener(_)
432
445
  return path
433
446
 
434
447
  def stop_all(self) -> None: # pragma: no cover
@@ -545,7 +558,6 @@ Cache: {cache}
545
558
  box = Box()
546
559
  ds = []
547
560
  for k, v in box.get_my_stuff().items():
548
- self.logger.debug(f"csvpaths.wrapping up: {k}: {v}")
549
561
  if hasattr(v, "close"):
550
562
  ds.append(k)
551
563
  for _ in ds:
@@ -1446,10 +1458,8 @@ Cache: {cache}
1446
1458
  #
1447
1459
  # re: W0212: treating _consider_line something like package private
1448
1460
  #
1449
- matched = (
1450
- self.current_matcher._consider_line( # pylint:disable=W0212
1451
- line
1452
- )
1461
+ matched = self.current_matcher._consider_line( # pylint:disable=W0212
1462
+ line
1453
1463
  )
1454
1464
  if self.current_matcher.stopped:
1455
1465
  stopped_count.append(1)