csvpath 0.0.534__tar.gz → 0.0.536__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 (313) hide show
  1. {csvpath-0.0.534 → csvpath-0.0.536}/PKG-INFO +1 -1
  2. {csvpath-0.0.534 → csvpath-0.0.536/assets}/config/config.ini +11 -0
  3. csvpath-0.0.534/assets/config/jenkins-local-filesystem.ini → csvpath-0.0.536/assets/config/jenkins-local-filesystem-mysql.ini +14 -43
  4. csvpath-0.0.534/assets/config/jenkins-local-filesystem-mysql.ini → csvpath-0.0.536/assets/config/jenkins-local-filesystem.ini +1 -5
  5. {csvpath-0.0.534 → csvpath-0.0.536}/assets/config/jenkins-windows-azure.ini +2 -0
  6. {csvpath-0.0.534 → csvpath-0.0.536}/assets/config/jenkins-windows-local.ini +10 -38
  7. {csvpath-0.0.534 → csvpath-0.0.536}/assets/config/jenkins-windows-sftp.ini +2 -0
  8. {csvpath-0.0.534/assets → csvpath-0.0.536}/config/config.ini +11 -0
  9. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/csvpaths.py +323 -181
  10. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/files/file_manager.py +269 -64
  11. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/files/file_metadata.py +1 -0
  12. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/files/file_registrar.py +17 -11
  13. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/files/files_listener.py +2 -0
  14. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/job.py +0 -1
  15. csvpath-0.0.536/csvpath/managers/integrations/scripts/scripts_results_listener.py +115 -0
  16. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sftp/sftp_sender.py +3 -1
  17. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sftpplus/sftpplus_listener.py +0 -3
  18. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sftpplus/transfer_creator.py +2 -2
  19. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/slack/sender.py +2 -1
  20. csvpath-0.0.536/csvpath/managers/integrations/sql/engine.py +31 -0
  21. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sql/sql_file_listener.py +13 -3
  22. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sql/sql_listener.py +1 -8
  23. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sql/sql_paths_listener.py +11 -3
  24. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sql/sql_result_listener.py +1 -3
  25. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sql/sql_results_listener.py +1 -3
  26. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sql/tables.py +2 -0
  27. csvpath-0.0.536/csvpath/managers/integrations/sql/updates.py +29 -0
  28. csvpath-0.0.536/csvpath/managers/integrations/sqlite/sqlite_result_listener.py +85 -0
  29. csvpath-0.0.536/csvpath/managers/integrations/sqlite/sqlite_results_listener.py +116 -0
  30. csvpath-0.0.536/csvpath/managers/integrations/webhook/webhook_listener.py +83 -0
  31. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/paths/paths_manager.py +294 -32
  32. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/paths/paths_metadata.py +1 -0
  33. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/paths/paths_registrar.py +3 -17
  34. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/result.py +16 -0
  35. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/result_metadata.py +4 -0
  36. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/result_registrar.py +13 -12
  37. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/result_serializer.py +0 -60
  38. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/results_manager.py +214 -229
  39. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/results_metadata.py +4 -1
  40. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/results_registrar.py +2 -0
  41. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/args_helper.py +0 -87
  42. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/collect.py +2 -2
  43. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/stats/minf.py +0 -1
  44. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/productions/reference.py +5 -3
  45. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/azure/azure_nos.py +68 -16
  46. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/box.py +6 -1
  47. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/cache.py +5 -1
  48. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/config.py +12 -4
  49. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/file_writers.py +1 -0
  50. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/gcs/gcs_nos.py +71 -28
  51. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/hasher.py +3 -0
  52. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/http/http_data_reader.py +1 -1
  53. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/intermediary.py +0 -3
  54. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/log_utility.py +18 -4
  55. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/nos.py +62 -7
  56. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/pandas_data_reader.py +1 -1
  57. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/path_util.py +29 -15
  58. csvpath-0.0.536/csvpath/util/references/files_reference_finder.py +530 -0
  59. csvpath-0.0.536/csvpath/util/references/ref_utils.py +141 -0
  60. {csvpath-0.0.534/csvpath/util → csvpath-0.0.536/csvpath/util/references}/reference_parser.py +76 -7
  61. csvpath-0.0.536/csvpath/util/references/results_reference_finder.py +242 -0
  62. csvpath-0.0.536/csvpath/util/run_home_maker.py +248 -0
  63. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/s3/s3_data_writer.py +3 -4
  64. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/s3/s3_nos.py +75 -29
  65. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/s3/s3_utils.py +10 -3
  66. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/sftp/sftp_config.py +33 -0
  67. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/sftp/sftp_nos.py +65 -34
  68. csvpath-0.0.536/csvpath/util/sftp/sftp_walk.py +37 -0
  69. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/sqliter.py +1 -2
  70. csvpath-0.0.536/csvpath/util/template_util.py +112 -0
  71. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/var_utility.py +10 -7
  72. {csvpath-0.0.534 → csvpath-0.0.536}/pyproject.toml +1 -1
  73. csvpath-0.0.534/csvpath/managers/integrations/sql/engine.py +0 -24
  74. csvpath-0.0.534/csvpath/managers/integrations/sqlite/sqlite_result_listener.py +0 -83
  75. csvpath-0.0.534/csvpath/managers/integrations/sqlite/sqlite_results_listener.py +0 -114
  76. csvpath-0.0.534/csvpath/util/reference_finder.py +0 -292
  77. {csvpath-0.0.534 → csvpath-0.0.536}/LICENSE +0 -0
  78. {csvpath-0.0.534 → csvpath-0.0.536}/README.md +0 -0
  79. {csvpath-0.0.534 → csvpath-0.0.536}/assets/config/function.imports +0 -0
  80. {csvpath-0.0.534 → csvpath-0.0.536}/assets/config/jenkins-local-azure.ini +0 -0
  81. {csvpath-0.0.534 → csvpath-0.0.536}/assets/config/jenkins-local-gcs.ini +0 -0
  82. {csvpath-0.0.534 → csvpath-0.0.536}/assets/config/jenkins-local-sftp.ini +0 -0
  83. {csvpath-0.0.534 → csvpath-0.0.536}/assets/config/jenkins-s3.ini +0 -0
  84. {csvpath-0.0.534 → csvpath-0.0.536}/assets/config/local-localhost-sftp.ini +0 -0
  85. {csvpath-0.0.534 → csvpath-0.0.536}/assets/integrations/sftpplus/handle_auto_arrival.bat +0 -0
  86. {csvpath-0.0.534 → csvpath-0.0.536}/assets/integrations/sftpplus/handle_auto_arrival.py +0 -0
  87. {csvpath-0.0.534 → csvpath-0.0.536}/assets/integrations/sftpplus/handle_auto_arrival.sh +0 -0
  88. {csvpath-0.0.534 → csvpath-0.0.536}/assets/integrations/sftpplus/handle_mailbox_arrival.bat +0 -0
  89. {csvpath-0.0.534 → csvpath-0.0.536}/assets/integrations/sftpplus/handle_mailbox_arrival.py +0 -0
  90. {csvpath-0.0.534 → csvpath-0.0.536}/assets/integrations/sftpplus/handle_mailbox_arrival.sh +0 -0
  91. {csvpath-0.0.534 → csvpath-0.0.536}/assets/integrations/sqlite/csvpath +0 -0
  92. {csvpath-0.0.534 → csvpath-0.0.536}/assets/integrations/sqlite/schema.sql +0 -0
  93. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/__init__.py +0 -0
  94. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/cli/__init__.py +0 -0
  95. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/cli/asker.py +0 -0
  96. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/cli/cli.py +0 -0
  97. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/cli/const.py +0 -0
  98. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/cli/debug_config.py +0 -0
  99. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/cli/drill_down.py +0 -0
  100. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/cli/function_describer.py +0 -0
  101. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/cli/function_lister.py +0 -0
  102. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/cli/selecter.py +0 -0
  103. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/csvpath.py +0 -0
  104. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/__init__.py +0 -0
  105. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/errors/error.py +0 -0
  106. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/errors/error_collector.py +0 -0
  107. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/errors/error_comms.py +0 -0
  108. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/errors/error_manager.py +0 -0
  109. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/files/lines_and_headers_cacher.py +0 -0
  110. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ckan/ckan.py +0 -0
  111. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ckan/ckan_listener.py +0 -0
  112. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ckan/datafile.py +0 -0
  113. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ckan/dataset.py +0 -0
  114. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/event.py +0 -0
  115. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/event_result.py +0 -0
  116. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/file_listener_ol.py +0 -0
  117. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/ol_listener.py +0 -0
  118. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/paths_listener_ol.py +0 -0
  119. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/result_listener_ol.py +0 -0
  120. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/results_listener_ol.py +0 -0
  121. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/run.py +0 -0
  122. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/run_listener_ol.py +0 -0
  123. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/run_state.py +0 -0
  124. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/ol/sender.py +0 -0
  125. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/otlp/error_metrics.py +0 -0
  126. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/otlp/metrics.py +0 -0
  127. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/otlp/otlp_error_listener.py +0 -0
  128. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/otlp/otlp_listener.py +0 -0
  129. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/otlp/otlp_result_listener.py +0 -0
  130. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/otlp/otlp_results_listener.py +0 -0
  131. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sftpplus/arrival_handler.py +0 -0
  132. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sftpplus/rpc.py +0 -0
  133. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sftpplus/transfers.py +0 -0
  134. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/slack/event.py +0 -0
  135. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/integrations/sqlite/schema.sql +0 -0
  136. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/listener.py +0 -0
  137. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/metadata.py +0 -0
  138. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/paths/paths_listener.py +0 -0
  139. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/registrar.py +0 -0
  140. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/readers/file_errors_reader.py +0 -0
  141. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/readers/file_lines_reader.py +0 -0
  142. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/readers/file_printouts_reader.py +0 -0
  143. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/readers/file_unmatched_reader.py +0 -0
  144. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/readers/readers.py +0 -0
  145. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/results/result_file_reader.py +0 -0
  146. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/run/run_listener_stdout.py +0 -0
  147. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/run/run_metadata.py +0 -0
  148. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/managers/run/run_registrar.py +0 -0
  149. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/__init__.py +0 -0
  150. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/__init__.py +0 -0
  151. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/args.py +0 -0
  152. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/all.py +0 -0
  153. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/andf.py +0 -0
  154. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/any.py +0 -0
  155. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/between.py +0 -0
  156. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/empty.py +0 -0
  157. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/exists.py +0 -0
  158. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/inf.py +0 -0
  159. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/no.py +0 -0
  160. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/notf.py +0 -0
  161. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/orf.py +0 -0
  162. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/boolean/yes.py +0 -0
  163. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/count.py +0 -0
  164. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/count_bytes.py +0 -0
  165. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/count_headers.py +0 -0
  166. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/count_lines.py +0 -0
  167. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/count_scans.py +0 -0
  168. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/counter.py +0 -0
  169. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/every.py +0 -0
  170. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/has_matches.py +0 -0
  171. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/increment.py +0 -0
  172. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/tally.py +0 -0
  173. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/counting/total_lines.py +0 -0
  174. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/dates/now.py +0 -0
  175. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/function.py +0 -0
  176. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/function_factory.py +0 -0
  177. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/function_finder.py +0 -0
  178. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/function_focus.py +0 -0
  179. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/append.py +0 -0
  180. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/empty_stack.py +0 -0
  181. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/end.py +0 -0
  182. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/header_name.py +0 -0
  183. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/header_names_mismatch.py +0 -0
  184. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/headers.py +0 -0
  185. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/insert.py +0 -0
  186. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/mismatch.py +0 -0
  187. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/replace.py +0 -0
  188. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/headers/reset_headers.py +0 -0
  189. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/lines/advance.py +0 -0
  190. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/lines/after_blank.py +0 -0
  191. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/lines/dups.py +0 -0
  192. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/lines/first.py +0 -0
  193. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/lines/first_line.py +0 -0
  194. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/lines/last.py +0 -0
  195. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/lines/stop.py +0 -0
  196. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/above.py +0 -0
  197. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/add.py +0 -0
  198. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/divide.py +0 -0
  199. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/equals.py +0 -0
  200. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/intf.py +0 -0
  201. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/mod.py +0 -0
  202. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/multiply.py +0 -0
  203. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/odd.py +0 -0
  204. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/round.py +0 -0
  205. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/subtotal.py +0 -0
  206. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/subtract.py +0 -0
  207. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/math/sum.py +0 -0
  208. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/misc/fingerprint.py +0 -0
  209. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/misc/importf.py +0 -0
  210. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/misc/random.py +0 -0
  211. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/print/jinjaf.py +0 -0
  212. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/print/print_line.py +0 -0
  213. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/print/print_queue.py +0 -0
  214. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/print/printf.py +0 -0
  215. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/print/table.py +0 -0
  216. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/stats/percent.py +0 -0
  217. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/stats/percent_unique.py +0 -0
  218. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/stats/stdev.py +0 -0
  219. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/alter.py +0 -0
  220. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/caps.py +0 -0
  221. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/concat.py +0 -0
  222. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/contains.py +0 -0
  223. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/length.py +0 -0
  224. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/lower.py +0 -0
  225. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/metaphone.py +0 -0
  226. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/regex.py +0 -0
  227. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/starts_with.py +0 -0
  228. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/strip.py +0 -0
  229. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/substring.py +0 -0
  230. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/strings/upper.py +0 -0
  231. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/testing/debug.py +0 -0
  232. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/types/__init__.py +0 -0
  233. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/types/boolean.py +0 -0
  234. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/types/datef.py +0 -0
  235. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/types/decimal.py +0 -0
  236. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/types/email.py +0 -0
  237. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/types/nonef.py +0 -0
  238. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/types/string.py +0 -0
  239. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/types/type.py +0 -0
  240. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/types/url.py +0 -0
  241. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/validity/fail.py +0 -0
  242. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/validity/failed.py +0 -0
  243. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/validity/line.py +0 -0
  244. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/variables/get.py +0 -0
  245. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/variables/pushpop.py +0 -0
  246. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/variables/put.py +0 -0
  247. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/variables/track.py +0 -0
  248. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/functions/variables/variables.py +0 -0
  249. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/lark_parser.py +0 -0
  250. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/lark_transformer.py +0 -0
  251. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/matcher.py +0 -0
  252. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/productions/__init__.py +0 -0
  253. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/productions/equality.py +0 -0
  254. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/productions/expression.py +0 -0
  255. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/productions/header.py +0 -0
  256. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/productions/matchable.py +0 -0
  257. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/productions/qualified.py +0 -0
  258. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/productions/term.py +0 -0
  259. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/productions/variable.py +0 -0
  260. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/util/exceptions.py +0 -0
  261. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/util/expression_encoder.py +0 -0
  262. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/util/expression_utility.py +0 -0
  263. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/util/lark_print_parser.py +0 -0
  264. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/util/print_parser.py +0 -0
  265. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/matching/util/runtime_data_collector.py +0 -0
  266. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/error_mode.py +0 -0
  267. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/explain_mode.py +0 -0
  268. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/files_mode.py +0 -0
  269. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/logic_mode.py +0 -0
  270. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/mode_controller.py +0 -0
  271. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/print_mode.py +0 -0
  272. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/return_mode.py +0 -0
  273. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/run_mode.py +0 -0
  274. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/source_mode.py +0 -0
  275. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/transfer_mode.py +0 -0
  276. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/unmatched_mode.py +0 -0
  277. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/modes/validation_mode.py +0 -0
  278. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/scanning/__init__.py +0 -0
  279. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/scanning/exceptions.py +0 -0
  280. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/scanning/parser.out +0 -0
  281. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/scanning/parsetab.py +0 -0
  282. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/scanning/scanner.py +0 -0
  283. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/scanning/scanning_lexer.py +0 -0
  284. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/azure/azure_data_reader.py +0 -0
  285. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/azure/azure_data_writer.py +0 -0
  286. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/azure/azure_fingerprinter.py +0 -0
  287. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/azure/azure_utils.py +0 -0
  288. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/azure/azure_xlsx_data_reader.py +0 -0
  289. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/caser.py +0 -0
  290. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/class_loader.py +0 -0
  291. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/code.py +0 -0
  292. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/config_exception.py +0 -0
  293. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/exceptions.py +0 -0
  294. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/file_info.py +0 -0
  295. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/file_readers.py +0 -0
  296. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/gcs/gcs_data_reader.py +0 -0
  297. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/gcs/gcs_data_writer.py +0 -0
  298. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/gcs/gcs_fingerprinter.py +0 -0
  299. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/gcs/gcs_utils.py +0 -0
  300. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/gcs/gcs_xlsx_data_reader.py +0 -0
  301. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/last_line_stats.py +0 -0
  302. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/line_counter.py +0 -0
  303. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/line_monitor.py +0 -0
  304. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/line_spooler.py +0 -0
  305. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/metadata_parser.py +0 -0
  306. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/printer.py +0 -0
  307. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/s3/s3_data_reader.py +0 -0
  308. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/s3/s3_fingerprinter.py +0 -0
  309. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/s3/s3_xlsx_data_reader.py +0 -0
  310. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/sftp/sftp_data_reader.py +0 -0
  311. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/sftp/sftp_data_writer.py +0 -0
  312. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/sftp/sftp_fingerprinter.py +0 -0
  313. {csvpath-0.0.534 → csvpath-0.0.536}/csvpath/util/sftp/sftp_xlsx_data_reader.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: csvpath
3
- Version: 0.0.534
3
+ Version: 0.0.536
4
4
  Summary: A data preboarding framework for managing and validating CSV, Excel, and other tabular data files using a Collect, Store, Validate, Publish pattern to create a trusted publisher for downstream data consumers.
5
5
  Author: David Kershaw
6
6
  Author-email: dk107dk@hotmail.com
@@ -16,6 +16,8 @@ csvpaths = info
16
16
  log_file = logs/csvpath.log
17
17
  log_files_to_keep = 100
18
18
  log_file_size = 52428800
19
+ # file or rotating
20
+ handler = file
19
21
 
20
22
  [config]
21
23
  path = config/config.ini
@@ -46,6 +48,9 @@ on_unmatched_file_fingerprints = halt
46
48
  groups =
47
49
  #slack, marquez, ckan, sftp, sftpplus, otlp, default, sqlite
48
50
 
51
+ # add a listener to exec scripts at the end of named-paths group runs
52
+ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_listener import ScriptsResultsListener
53
+
49
54
  # add sql to capture staging, loads, and results in mysql, postgres, ms sql server, or sqlite
50
55
  sql.file = from csvpath.managers.integrations.sql.sql_file_listener import SqlFileListener
51
56
  sql.paths = from csvpath.managers.integrations.sql.sql_paths_listener import SqlPathsListener
@@ -109,6 +114,9 @@ db = archive/csvpath.db
109
114
  # sqlite, mysql, postgres, or sql_server
110
115
  dialect = sqlite
111
116
  connection_string = sqlite:///archive/csvpath-sqlite.db
117
+ #dialect = mysql
118
+ #connection_string = mysql://csvpath:hangzhou@127.0.0.1/csvpath
119
+
112
120
 
113
121
  [sftpplus]
114
122
  # these are only needed by the csvpath writer
@@ -140,4 +148,7 @@ verify = False
140
148
  # on-invalid-slack: webhook-minus-'https://'
141
149
  webhook_url =
142
150
 
151
+ [scripts]
152
+ run_scripts = yes
153
+ shell = /bin/bash
143
154
 
@@ -5,8 +5,8 @@ extensions = txt, csvpath, csvpaths
5
5
  extensions = txt, csv, tsv, dat, tab, psv, ssv
6
6
 
7
7
  [errors]
8
- csvpath = raise, collect, stop, fail, print
9
- csvpaths = raise, collect
8
+ csvpath = raise, collect, print
9
+ csvpaths = raise, collect, print
10
10
  use_format = full
11
11
  pattern = {time}:{file}:{line}:{paths}:{instance}:{chain}: {message}
12
12
 
@@ -18,7 +18,7 @@ log_files_to_keep = 100
18
18
  log_file_size = 52428800
19
19
 
20
20
  [config]
21
- path = assets/config/jenkins-local-filesystem.ini
21
+ path = assets/config/jenkins-local-filesystem-mysql.ini
22
22
 
23
23
  [cache]
24
24
  path = cache
@@ -35,78 +35,53 @@ files = inputs/named_files
35
35
  csvpaths = inputs/named_paths
36
36
  on_unmatched_file_fingerprints = halt
37
37
 
38
- #
39
- # integrations activation
40
- #
41
-
42
38
  [listeners]
43
- groups =
44
- #slack, marquez, ckan, sftp, sftpplus, otlp, default, sqlite
45
-
46
- # add sqlite to capture staging, loads, and results in a local sqlite db
39
+ groups = default
40
+ sql.file = from csvpath.managers.integrations.sql.sql_file_listener import SqlFileListener
41
+ sql.paths = from csvpath.managers.integrations.sql.sql_paths_listener import SqlPathsListener
42
+ sql.result = from csvpath.managers.integrations.sql.sql_result_listener import SqlResultListener
43
+ sql.results = from csvpath.managers.integrations.sql.sql_results_listener import SqlResultsListener
47
44
  sqlite.result = from csvpath.managers.integrations.sqlite.sqlite_result_listener import SqliteResultListener
48
45
  sqlite.results = from csvpath.managers.integrations.sqlite.sqlite_results_listener import SqliteResultsListener
49
-
50
- # these simple default listeners track all files staged and all paths loaded in
51
- # central manifests. unlike other manifest writers, if they have multiple
52
- # concurrent users they have potential a race condition. users that do not
53
- # share inputs directories do not need to worry about this. you should vet
54
- # using them against your use case; potential utility vs. the modest but non-0
55
- # risk of lost updates. they can be disabled with little loss of function.
56
- # alternatively a database-backed version may be more suitable.
57
46
  default.file = from csvpath.managers.files.files_listener import FilesListener
58
47
  default.paths = from csvpath.managers.paths.paths_listener import PathsListener
59
-
60
- # add otlp to support any OpenTelemetry backend
61
48
  otlp.result = from csvpath.managers.integrations.otlp.otlp_result_listener import OpenTelemetryResultListener
62
49
  otlp.results = from csvpath.managers.integrations.otlp.otlp_results_listener import OpenTelemetryResultsListener
63
50
  otlp.errors = from csvpath.managers.integrations.otlp.otlp_error_listener import OpenTelemetryErrorListener
64
-
65
- # add sftpplus to the list of groups above to automate registration and named-paths group runs on file arrival at an SFTPPlus server
66
51
  sftpplus.paths = from csvpath.managers.integrations.sftpplus.sftpplus_listener import SftpPlusListener
67
-
68
- # add sftp to the list of groups above to push results to an sftp account
69
52
  sftp.results = from csvpath.managers.integrations.sftp.sftp_listener import SftpListener
70
-
71
- # add ckan to the list of groups above for alerts to slack webhooks
72
53
  ckan.results = from csvpath.managers.integrations.ckan.ckan_listener import CkanListener
73
-
74
- #add marquez to the list of groups above for OpenLineage events to a Marquez server
75
54
  marquez.file = from csvpath.managers.integrations.ol.file_listener_ol import OpenLineageFileListener
76
55
  marquez.paths = from csvpath.managers.integrations.ol.paths_listener_ol import OpenLineagePathsListener
77
56
  marquez.result = from csvpath.managers.integrations.ol.result_listener_ol import OpenLineageResultListener
78
57
  marquez.results = from csvpath.managers.integrations.ol.results_listener_ol import OpenLineageResultsListener
79
-
80
- # add slack to the list of groups above for alerts to slack webhooks
81
58
  slack.file = from csvpath.managers.integrations.slack.sender import SlackSender
82
59
  slack.paths = from csvpath.managers.integrations.slack.sender import SlackSender
83
60
  slack.result = from csvpath.managers.integrations.slack.sender import SlackSender
84
61
  slack.results = from csvpath.managers.integrations.slack.sender import SlackSender
85
62
 
86
- #
87
- # integrations setup
88
- #
89
-
90
63
  [sftp]
91
64
  server = 192.168.67.2
92
65
  port = 10022
93
66
  username = tinpenny
94
67
  password = tinpenny
95
68
 
69
+ [sql]
70
+ dialect = mysql
71
+ connection_string = mysql://csvpath:hangzhou@192.168.66.1/csvpath
72
+
96
73
  [sqlite]
97
74
  db = archive/csvpath.db
98
75
 
99
76
  [sftpplus]
100
- # these are only needed by the csvpath writer
101
77
  mailbox_user = MAILBOX_USER
102
78
  mailbox_password = MAILBOX_PASSWORD
103
79
  server = SFTPPLUS_SERVER
104
80
  port = SFTPPLUS_PORT
105
- # these are only needed on the server
106
81
  admin_username = SFTPPLUS_ADMIN_USERNAME
107
82
  admin_password = SFTPPLUS_ADMIN_PASSWORD
108
83
  api_url = https://localhost:10020/json
109
- scripts_dir =
84
+ scripts_dir =
110
85
  execute_timeout = 300
111
86
 
112
87
  [ckan]
@@ -121,9 +96,5 @@ timeout = 5
121
96
  verify = False
122
97
 
123
98
  [slack]
124
- # add your main webhook here. to set webhooks on a csvpath-by-csvpath basis add
125
- # on-valid-slack: webhook-minus-'https://' and/or
126
- # on-invalid-slack: webhook-minus-'https://'
127
- webhook_url =
128
-
99
+ webhook_url =
129
100
 
@@ -40,7 +40,7 @@ on_unmatched_file_fingerprints = halt
40
40
  #
41
41
 
42
42
  [listeners]
43
- groups = sql
43
+ groups =
44
44
  #slack, marquez, ckan, sftp, sftpplus, otlp, default, sqlite
45
45
 
46
46
  sql.file = from csvpath.managers.integrations.sql.sql_file_listener import SqlFileListener
@@ -98,10 +98,6 @@ port = 10022
98
98
  username = tinpenny
99
99
  password = tinpenny
100
100
 
101
- [sql]
102
- dialect = mysql
103
- connection_string = mysql://csvpath:hangzhou@127.0.0.1/csvpath
104
-
105
101
  [sqlite]
106
102
  db = archive/csvpath.db
107
103
 
@@ -16,6 +16,8 @@ csvpaths = debug
16
16
  log_file = logs\csvpath.log
17
17
  log_files_to_keep = 100
18
18
  log_file_size = 52428800
19
+ # file or rotating
20
+ handler = file
19
21
 
20
22
  [config]
21
23
  path = assets\config\jenkins-windows-azure.ini
@@ -5,8 +5,8 @@ extensions = txt, csvpath, csvpaths
5
5
  extensions = txt, csv, tsv, dat, tab, psv, ssv
6
6
 
7
7
  [errors]
8
- csvpath = raise, collect, stop, fail, print
9
- csvpaths = raise, collect
8
+ csvpath = raise, collect, print
9
+ csvpaths = raise, collect, print
10
10
  use_format = full
11
11
  pattern = {time}:{file}:{line}:{paths}:{instance}:{chain}: {message}
12
12
 
@@ -16,6 +16,7 @@ csvpaths = debug
16
16
  log_file = logs\csvpath.log
17
17
  log_files_to_keep = 100
18
18
  log_file_size = 52428800
19
+ handler = file
19
20
 
20
21
  [config]
21
22
  path = assets\config\jenkins-windows-local.ini
@@ -35,58 +36,29 @@ files = inputs\named_files
35
36
  csvpaths = inputs\named_paths
36
37
  on_unmatched_file_fingerprints = halt
37
38
 
38
- #
39
- # integrations activation
40
- #
41
-
42
39
  [listeners]
43
- groups =
44
- #slack, marquez, ckan, sftp, sftpplus, otlp, default, sqlite
40
+ groups = scripts
41
+ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_listener import ScriptsResultsListener
45
42
 
46
- # add sqlite to capture staging, loads, and results in a local sqlite db
47
43
  sqlite.result = from csvpath.managers.integrations.sqlite.sqlite_result_listener import SqliteResultListener
48
44
  sqlite.results = from csvpath.managers.integrations.sqlite.sqlite_results_listener import SqliteResultsListener
49
-
50
- # these simple default listeners track all files staged and all paths loaded in
51
- # central manifests. unlike other manifest writers, if they have multiple
52
- # concurrent users they have potential a race condition. users that do not
53
- # share inputs directories do not need to worry about this. you should vet
54
- # using them against your use case; potential utility vs. the modest but non-0
55
- # risk of lost updates. they can be disabled with little loss of function.
56
- # alternatively a database-backed version may be more suitable.
57
45
  default.file = from csvpath.managers.files.files_listener import FilesListener
58
46
  default.paths = from csvpath.managers.paths.paths_listener import PathsListener
59
-
60
- # add otlp to support any OpenTelemetry backend
61
47
  otlp.result = from csvpath.managers.integrations.otlp.otlp_result_listener import OpenTelemetryResultListener
62
48
  otlp.results = from csvpath.managers.integrations.otlp.otlp_results_listener import OpenTelemetryResultsListener
63
49
  otlp.errors = from csvpath.managers.integrations.otlp.otlp_error_listener import OpenTelemetryErrorListener
64
-
65
- # add sftpplus to the list of groups above to automate registration and named-paths group runs on file arrival at an SFTPPlus server
66
50
  sftpplus.paths = from csvpath.managers.integrations.sftpplus.sftpplus_listener import SftpPlusListener
67
-
68
- # add sftp to the list of groups above to push results to an sftp account
69
51
  sftp.results = from csvpath.managers.integrations.sftp.sftp_listener import SftpListener
70
-
71
- # add ckan to the list of groups above for alerts to slack webhooks
72
52
  ckan.results = from csvpath.managers.integrations.ckan.ckan_listener import CkanListener
73
-
74
- #add marquez to the list of groups above for OpenLineage events to a Marquez server
75
53
  marquez.file = from csvpath.managers.integrations.ol.file_listener_ol import OpenLineageFileListener
76
54
  marquez.paths = from csvpath.managers.integrations.ol.paths_listener_ol import OpenLineagePathsListener
77
55
  marquez.result = from csvpath.managers.integrations.ol.result_listener_ol import OpenLineageResultListener
78
56
  marquez.results = from csvpath.managers.integrations.ol.results_listener_ol import OpenLineageResultsListener
79
-
80
- # add slack to the list of groups above for alerts to slack webhooks
81
57
  slack.file = from csvpath.managers.integrations.slack.sender import SlackSender
82
58
  slack.paths = from csvpath.managers.integrations.slack.sender import SlackSender
83
59
  slack.result = from csvpath.managers.integrations.slack.sender import SlackSender
84
60
  slack.results = from csvpath.managers.integrations.slack.sender import SlackSender
85
61
 
86
- #
87
- # integrations setup
88
- #
89
-
90
62
  [sftp]
91
63
  server = 192.168.67.2
92
64
  port = 10022
@@ -97,12 +69,10 @@ password = tinpenny
97
69
  db = archive\csvpath.db
98
70
 
99
71
  [sftpplus]
100
- # these are only needed by the csvpath writer
101
72
  mailbox_user = MAILBOX_USER
102
73
  mailbox_password = MAILBOX_PASSWORD
103
74
  server = SFTPPLUS_SERVER
104
75
  port = SFTPPLUS_PORT
105
- # these are only needed on the server
106
76
  admin_username = SFTPPLUS_ADMIN_USERNAME
107
77
  admin_password = SFTPPLUS_ADMIN_PASSWORD
108
78
  api_url = https://localhost:10020/json
@@ -121,9 +91,11 @@ timeout = 5
121
91
  verify = False
122
92
 
123
93
  [slack]
124
- # add your main webhook here. to set webhooks on a csvpath-by-csvpath basis add
125
- # on-valid-slack: webhook-minus-'https://' and/or
126
- # on-invalid-slack: webhook-minus-'https://'
127
94
  webhook_url =
128
95
 
96
+ [scripts]
97
+ run_scripts = yes
98
+ shell = /bin/bash
99
+
100
+
129
101
 
@@ -16,6 +16,8 @@ csvpaths = debug
16
16
  log_file = logs\csvpath.log
17
17
  log_files_to_keep = 100
18
18
  log_file_size = 52428800
19
+ # file or rotating
20
+ handler = file
19
21
 
20
22
  [config]
21
23
  path = assets\config\jenkins-windows-sftp.ini
@@ -16,6 +16,8 @@ csvpaths = info
16
16
  log_file = logs/csvpath.log
17
17
  log_files_to_keep = 100
18
18
  log_file_size = 52428800
19
+ # file or rotating
20
+ handler = file
19
21
 
20
22
  [config]
21
23
  path = config/config.ini
@@ -46,6 +48,9 @@ on_unmatched_file_fingerprints = halt
46
48
  groups =
47
49
  #slack, marquez, ckan, sftp, sftpplus, otlp, default, sqlite
48
50
 
51
+ # add a listener to exec scripts at the end of named-paths group runs
52
+ scripts.results = from csvpath.managers.integrations.scripts.scripts_results_listener import ScriptsResultsListener
53
+
49
54
  # add sql to capture staging, loads, and results in mysql, postgres, ms sql server, or sqlite
50
55
  sql.file = from csvpath.managers.integrations.sql.sql_file_listener import SqlFileListener
51
56
  sql.paths = from csvpath.managers.integrations.sql.sql_paths_listener import SqlPathsListener
@@ -109,6 +114,9 @@ db = archive/csvpath.db
109
114
  # sqlite, mysql, postgres, or sql_server
110
115
  dialect = sqlite
111
116
  connection_string = sqlite:///archive/csvpath-sqlite.db
117
+ #dialect = mysql
118
+ #connection_string = mysql://csvpath:hangzhou@127.0.0.1/csvpath
119
+
112
120
 
113
121
  [sftpplus]
114
122
  # these are only needed by the csvpath writer
@@ -140,4 +148,7 @@ verify = False
140
148
  # on-invalid-slack: webhook-minus-'https://'
141
149
  webhook_url =
142
150
 
151
+ [scripts]
152
+ run_scripts = yes
153
+ shell = /bin/bash
143
154