meerschaum 2.6.1__tar.gz → 2.6.3__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 (276) hide show
  1. {meerschaum-2.6.1/meerschaum.egg-info → meerschaum-2.6.3}/PKG-INFO +1 -1
  2. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_version.py +1 -1
  3. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_pipes.py +5 -4
  4. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/sql.py +1 -1
  5. {meerschaum-2.6.1 → meerschaum-2.6.3/meerschaum.egg-info}/PKG-INFO +1 -1
  6. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_pipes_dtypes.py +3 -4
  7. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_sync.py +97 -0
  8. {meerschaum-2.6.1 → meerschaum-2.6.3}/LICENSE +0 -0
  9. {meerschaum-2.6.1 → meerschaum-2.6.3}/NOTICE +0 -0
  10. {meerschaum-2.6.1 → meerschaum-2.6.3}/README.md +0 -0
  11. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/__init__.py +0 -0
  12. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/__main__.py +0 -0
  13. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/__init__.py +0 -0
  14. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/arguments/__init__.py +0 -0
  15. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
  16. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/arguments/_parser.py +0 -0
  17. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/docs/__init__.py +0 -0
  18. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/docs/index.py +0 -0
  19. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/entry.py +0 -0
  20. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/__init__.py +0 -0
  21. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/app/__init__.py +0 -0
  22. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/app/_windows.py +0 -0
  23. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/app/actions.py +0 -0
  24. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/app/pipes.py +0 -0
  25. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/Shell.py +0 -0
  26. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
  27. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
  28. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/__init__.py +0 -0
  29. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/resources/__init__.py +0 -0
  30. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/updates.py +0 -0
  31. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/term/TermPageHandler.py +0 -0
  32. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/term/__init__.py +0 -0
  33. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/term/tools.py +0 -0
  34. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/__init__.py +0 -0
  35. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/api.py +0 -0
  36. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/attach.py +0 -0
  37. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/bootstrap.py +0 -0
  38. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/clear.py +0 -0
  39. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/copy.py +0 -0
  40. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/deduplicate.py +0 -0
  41. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/delete.py +0 -0
  42. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/drop.py +0 -0
  43. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/edit.py +0 -0
  44. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/install.py +0 -0
  45. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/login.py +0 -0
  46. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/os.py +0 -0
  47. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/pause.py +0 -0
  48. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/python.py +0 -0
  49. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/register.py +0 -0
  50. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/reload.py +0 -0
  51. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/restart.py +0 -0
  52. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/setup.py +0 -0
  53. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/sh.py +0 -0
  54. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/show.py +0 -0
  55. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/sql.py +0 -0
  56. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/stack.py +0 -0
  57. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/start.py +0 -0
  58. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/stop.py +0 -0
  59. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/sync.py +0 -0
  60. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/tag.py +0 -0
  61. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/uninstall.py +0 -0
  62. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/upgrade.py +0 -0
  63. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/verify.py +0 -0
  64. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/__init__.py +0 -0
  65. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/_chain.py +0 -0
  66. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/_events.py +0 -0
  67. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/_oauth2.py +0 -0
  68. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/_websockets.py +0 -0
  69. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/__init__.py +0 -0
  70. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/__init__.py +0 -0
  71. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/ansi_up.js +0 -0
  72. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
  73. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/favicon.ico +0 -0
  74. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
  75. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
  76. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/__init__.py +0 -0
  77. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/custom.py +0 -0
  78. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/dashboard.py +0 -0
  79. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/jobs.py +0 -0
  80. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/login.py +0 -0
  81. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/pipes.py +0 -0
  82. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/plugins.py +0 -0
  83. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/register.py +0 -0
  84. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/components.py +0 -0
  85. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/connectors.py +0 -0
  86. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/graphs.py +0 -0
  87. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/jobs.py +0 -0
  88. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/keys.py +0 -0
  89. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/__init__.py +0 -0
  90. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/dashboard.py +0 -0
  91. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/error.py +0 -0
  92. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/job.py +0 -0
  93. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/login.py +0 -0
  94. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/pipes.py +0 -0
  95. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/plugins.py +0 -0
  96. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/register.py +0 -0
  97. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pipes.py +0 -0
  98. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/plugins.py +0 -0
  99. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/sessions.py +0 -0
  100. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/sync.py +0 -0
  101. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/users.py +0 -0
  102. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/websockets.py +0 -0
  103. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/webterm.py +0 -0
  104. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/__init__.py +0 -0
  105. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/_interfaces.py +0 -0
  106. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/_locations.py +0 -0
  107. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/_metrics.py +0 -0
  108. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/_pipes.py +0 -0
  109. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/__init__.py +0 -0
  110. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/__init__.py +0 -0
  111. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/__init__.py +0 -0
  112. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
  113. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/dash.css +0 -0
  114. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
  115. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/styles.css +0 -0
  116. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/xterm.css +0 -0
  117. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/ico/__init__.py +0 -0
  118. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/ico/logo.ico +0 -0
  119. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/__init__.py +0 -0
  120. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/action_button.js +0 -0
  121. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/main.js +0 -0
  122. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/terminado.js +0 -0
  123. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/xterm.js +0 -0
  124. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/png/__init__.py +0 -0
  125. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/__init__.py +0 -0
  126. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/index.html +0 -0
  127. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/old_index.html +0 -0
  128. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/secret.html +0 -0
  129. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/termpage.html +0 -0
  130. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/__init__.py +0 -0
  131. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_actions.py +0 -0
  132. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_connectors.py +0 -0
  133. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_index.py +0 -0
  134. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_jobs.py +0 -0
  135. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_login.py +0 -0
  136. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_misc.py +0 -0
  137. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_pipes.py +0 -0
  138. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_plugins.py +0 -0
  139. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_users.py +0 -0
  140. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_version.py +0 -0
  141. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_webterm.py +0 -0
  142. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/tables/__init__.py +0 -0
  143. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/__init__.py +0 -0
  144. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_dash.py +0 -0
  145. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_default.py +0 -0
  146. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_edit.py +0 -0
  147. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_environment.py +0 -0
  148. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_formatting.py +0 -0
  149. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_jobs.py +0 -0
  150. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_patch.py +0 -0
  151. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_paths.py +0 -0
  152. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_preprocess.py +0 -0
  153. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_read_config.py +0 -0
  154. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_shell.py +0 -0
  155. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_sync.py +0 -0
  156. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/paths.py +0 -0
  157. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/resources/__init__.py +0 -0
  158. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/__init__.py +0 -0
  159. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/grafana/__init__.py +0 -0
  160. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
  161. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
  162. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/resources/__init__.py +0 -0
  163. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/static/__init__.py +0 -0
  164. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/_Connector.py +0 -0
  165. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/__init__.py +0 -0
  166. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_APIConnector.py +0 -0
  167. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/__init__.py +0 -0
  168. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_actions.py +0 -0
  169. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_fetch.py +0 -0
  170. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_jobs.py +0 -0
  171. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_login.py +0 -0
  172. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_misc.py +0 -0
  173. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_pipes.py +0 -0
  174. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_plugins.py +0 -0
  175. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_request.py +0 -0
  176. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_uri.py +0 -0
  177. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_users.py +0 -0
  178. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/parse.py +0 -0
  179. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
  180. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/plugin/__init__.py +0 -0
  181. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/poll.py +0 -0
  182. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_SQLConnector.py +0 -0
  183. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/__init__.py +0 -0
  184. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_cli.py +0 -0
  185. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_create_engine.py +0 -0
  186. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_fetch.py +0 -0
  187. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_instance.py +0 -0
  188. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_plugins.py +0 -0
  189. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_sql.py +0 -0
  190. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_uri.py +0 -0
  191. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_users.py +0 -0
  192. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/tables/__init__.py +0 -0
  193. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/tables/types.py +0 -0
  194. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/tools.py +0 -0
  195. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_ValkeyConnector.py +0 -0
  196. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/__init__.py +0 -0
  197. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_fetch.py +0 -0
  198. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_pipes.py +0 -0
  199. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_plugins.py +0 -0
  200. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_users.py +0 -0
  201. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/__init__.py +0 -0
  202. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_attributes.py +0 -0
  203. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_bootstrap.py +0 -0
  204. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_clear.py +0 -0
  205. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_copy.py +0 -0
  206. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_data.py +0 -0
  207. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_deduplicate.py +0 -0
  208. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_delete.py +0 -0
  209. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_drop.py +0 -0
  210. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_dtypes.py +0 -0
  211. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_edit.py +0 -0
  212. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_fetch.py +0 -0
  213. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_register.py +0 -0
  214. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_show.py +0 -0
  215. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_sync.py +0 -0
  216. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_verify.py +0 -0
  217. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Plugin/__init__.py +0 -0
  218. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/User/_User.py +0 -0
  219. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/User/__init__.py +0 -0
  220. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/__init__.py +0 -0
  221. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/jobs/_Executor.py +0 -0
  222. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/jobs/_Job.py +0 -0
  223. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/jobs/__init__.py +0 -0
  224. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/jobs/systemd.py +0 -0
  225. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/plugins/_Plugin.py +0 -0
  226. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/plugins/__init__.py +0 -0
  227. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/plugins/bootstrap.py +0 -0
  228. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/__init__.py +0 -0
  229. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/_get_pipes.py +0 -0
  230. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/Daemon.py +0 -0
  231. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
  232. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/RotatingFile.py +0 -0
  233. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/StdinFile.py +0 -0
  234. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/__init__.py +0 -0
  235. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/_names.py +0 -0
  236. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/dataframe.py +0 -0
  237. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/debug.py +0 -0
  238. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/dtypes/__init__.py +0 -0
  239. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/dtypes/sql.py +0 -0
  240. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/__init__.py +0 -0
  241. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/_jobs.py +0 -0
  242. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/_pipes.py +0 -0
  243. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/_pprint.py +0 -0
  244. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/_shell.py +0 -0
  245. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/interactive.py +0 -0
  246. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/misc.py +0 -0
  247. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/networking.py +0 -0
  248. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/packages/__init__.py +0 -0
  249. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/packages/_packages.py +0 -0
  250. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/packages/lazy_loader.py +0 -0
  251. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/pool.py +0 -0
  252. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/process.py +0 -0
  253. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/prompt.py +0 -0
  254. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/schedule.py +0 -0
  255. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/threading.py +0 -0
  256. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/typing.py +0 -0
  257. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/venv/_Venv.py +0 -0
  258. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/venv/__init__.py +0 -0
  259. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/warnings.py +0 -0
  260. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/yaml.py +0 -0
  261. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/SOURCES.txt +0 -0
  262. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/dependency_links.txt +0 -0
  263. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/entry_points.txt +0 -0
  264. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/requires.txt +0 -0
  265. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/top_level.txt +0 -0
  266. {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/zip-safe +0 -0
  267. {meerschaum-2.6.1 → meerschaum-2.6.3}/setup.cfg +0 -0
  268. {meerschaum-2.6.1 → meerschaum-2.6.3}/setup.py +0 -0
  269. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_actions.py +0 -0
  270. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_arguments.py +0 -0
  271. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_deduplicate.py +0 -0
  272. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_jobs.py +0 -0
  273. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_pipe_data.py +0 -0
  274. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_sql.py +0 -0
  275. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_users.py +0 -0
  276. {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_verify.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerschaum
3
- Version: 2.6.1
3
+ Version: 2.6.3
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -2,4 +2,4 @@
2
2
  Specify the Meerschaum release version.
3
3
  """
4
4
 
5
- __version__ = "2.6.1"
5
+ __version__ = "2.6.3"
@@ -1980,19 +1980,20 @@ def sync_pipe_inplace(
1980
1980
  "SELECT\n"
1981
1981
  f" MIN({dt_col_name}) AS {sql_item_name('min_dt', self.flavor)},\n"
1982
1982
  f" MAX({dt_col_name}) AS {sql_item_name('max_dt', self.flavor)}\n"
1983
- f"FROM {temp_table_names['new']}\n"
1983
+ f"FROM {temp_table_names['new' if not upsert else 'update']}\n"
1984
1984
  f"WHERE {dt_col_name} IS NOT NULL"
1985
1985
  ],
1986
1986
  with_results=True,
1987
1987
  debug=debug,
1988
- )
1988
+ ) if not upsert else ((True, "Success"), None)
1989
1989
  if not new_dt_bounds_success:
1990
1990
  return (
1991
1991
  new_dt_bounds_success,
1992
1992
  f"Could not determine in-place datetime bounds:\n{new_dt_bounds_msg}"
1993
1993
  )
1994
1994
 
1995
- begin, end = new_dt_bounds_results[0].fetchone()
1995
+ if not upsert:
1996
+ begin, end = new_dt_bounds_results[0].fetchone()
1996
1997
 
1997
1998
  backtrack_def = self.get_pipe_data_query(
1998
1999
  pipe,
@@ -2010,7 +2011,7 @@ def sync_pipe_inplace(
2010
2011
  self.flavor,
2011
2012
  schema=internal_schema,
2012
2013
  )[0]
2013
- (create_backtrack_success, create_backtrack_msg), create_new_results = session_execute(
2014
+ (create_backtrack_success, create_backtrack_msg), create_backtrack_results = session_execute(
2014
2015
  session,
2015
2016
  create_backtrack_query,
2016
2017
  with_results=True,
@@ -338,7 +338,7 @@ columns_indices_queries = {
338
338
  AND kc.name = i.name
339
339
  WHERE
340
340
  t.name IN ('{table}', '{table_trunc}')
341
- AND s.name = 'dbo'
341
+ AND s.name = '{schema}'
342
342
  AND i.type IN (1, 2) -- 1 = CLUSTERED, 2 = NONCLUSTERED
343
343
  """,
344
344
  'oracle': """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerschaum
3
- Version: 2.6.1
3
+ Version: 2.6.3
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -112,15 +112,14 @@ def test_infer_json_dtype(flavor: str):
112
112
  conn = conns[flavor]
113
113
  pipe = Pipe('foo', 'bar', session_id, instance=conn)
114
114
  _ = pipe.delete(debug=debug)
115
- pipe = Pipe('foo', 'bar', session_id, instance=conn)
115
+ pipe = Pipe('foo', 'bar', session_id, instance=conn, columns=['id'])
116
116
  success, msg = pipe.sync([
117
- {'a': ['b', 'c']},
118
- {'a': {'b': 1}},
117
+ {'id': 1, 'a': ['b', 'c']},
118
+ {'id': 2, 'a': {'b': 1}},
119
119
  ])
120
120
  assert success, msg
121
121
  pprint(pipe.get_columns_types())
122
122
  df = pipe.get_data(debug=debug)
123
- print(df)
124
123
  assert isinstance(df['a'][0], list)
125
124
  assert isinstance(df['a'][1], dict)
126
125
 
@@ -536,6 +536,103 @@ def test_sync_inplace(flavor: str):
536
536
  assert df['a'][0] == 3
537
537
 
538
538
 
539
+ @pytest.mark.parametrize("flavor", get_flavors())
540
+ def test_sync_inplace_upsert(flavor: str):
541
+ """
542
+ Verify that in-place syncing works as expected.
543
+ """
544
+ from meerschaum.utils.sql import sql_item_name
545
+ conn = conns[flavor]
546
+ if conn.type != 'sql':
547
+ return
548
+ source_pipe = Pipe('test', 'inplace', 'upsert', instance=conn)
549
+ source_pipe.delete()
550
+ source_pipe = Pipe(
551
+ 'test', 'inplace', 'upsert',
552
+ instance=conn,
553
+ columns={'datetime': 'dt', 'id': 'id'},
554
+ indices={'all': ['dt', 'id']},
555
+ upsert=True,
556
+ )
557
+ dest_pipe = Pipe(str(conn), 'inplace', 'upsert', instance=conn)
558
+ dest_pipe.delete()
559
+ query = f"""
560
+ WITH {sql_item_name('subquery', flavor)} AS (
561
+ SELECT *
562
+ FROM {sql_item_name(source_pipe.target, flavor)}
563
+ )
564
+ SELECT *
565
+ FROM {sql_item_name('subquery', flavor)}
566
+ """ if flavor not in ('mysql',) else f"""
567
+ SELECT *
568
+ FROM {sql_item_name(source_pipe.target, flavor)}
569
+ """
570
+ dest_pipe = Pipe(
571
+ str(conn), 'inplace', 'upsert',
572
+ instance=conn,
573
+ columns={'datetime': 'dt', 'id': 'id'},
574
+ dtypes={'a': 'int', 'id': 'uuid'},
575
+ upsert=True,
576
+ parameters={
577
+ "fetch": {
578
+ "definition": query,
579
+ "backtrack_minutes": 1440,
580
+ }
581
+ },
582
+ )
583
+
584
+ docs = [
585
+ {'dt': '2023-01-01 00:00:00', 'id': UUID('9f680a72-b5f7-4336-8f7c-30927ec21cb1')},
586
+ {'dt': '2023-01-01 00:01:00', 'id': UUID('335b0322-4b54-40aa-8019-07666cbefa52')},
587
+ {'dt': '2023-01-01 00:02:00', 'id': UUID('d7d42913-2dfe-47d6-b0e0-7f71e13e814e')},
588
+ {'dt': '2023-01-01 00:03:00', 'id': UUID('7e194a2c-26b4-4632-af02-e0a8b2c6ce1e')},
589
+ {'dt': '2023-01-01 00:04:00', 'id': UUID('31e5fd08-fb81-47f4-8a1c-0c9dcf08ac5e')},
590
+ ]
591
+ success, msg = source_pipe.sync(docs)
592
+ assert success, msg
593
+
594
+ success, msg = dest_pipe.sync(debug=debug)
595
+ assert success, msg
596
+ assert dest_pipe.get_rowcount(debug=debug) == len(docs)
597
+
598
+ success, msg = dest_pipe.sync(debug=debug)
599
+ assert success, msg
600
+ assert dest_pipe.get_rowcount(debug=debug) == len(docs)
601
+
602
+ new_docs = [
603
+ {'dt': '2023-01-02 00:00:00', 'id': UUID('afb0b31b-15dc-485e-ac6f-d8622b6d03d4')},
604
+ {'dt': '2023-01-02 00:01:00', 'id': UUID('8b7bf428-d0ed-40fa-951b-bb115a03eac5')},
605
+ {'dt': '2023-01-02 00:02:00', 'id': UUID('36aed9b4-4c7a-4566-a321-d1774ef1015a')},
606
+ {'dt': '2023-01-02 00:03:00', 'id': UUID('7a4ef6cc-37d8-4899-9ddb-07b4998d0b53')},
607
+ {'dt': '2023-01-02 00:04:00', 'id': UUID('59244211-fdb8-46f1-b14b-8631146758c0')},
608
+ ]
609
+ success, msg = source_pipe.sync(new_docs)
610
+ assert success, msg
611
+
612
+ success, msg = dest_pipe.sync(debug=debug)
613
+ assert success, msg
614
+ assert dest_pipe.get_rowcount(debug=debug) == len(docs) + len(new_docs)
615
+
616
+ update_docs = [
617
+ {'dt': '2023-01-01 00:00:00', 'id': UUID('9f680a72-b5f7-4336-8f7c-30927ec21cb1'), 'a': 1},
618
+ {'dt': '2023-01-01 00:01:00', 'id': UUID('335b0322-4b54-40aa-8019-07666cbefa52'), 'a': 2},
619
+ {'dt': '2023-01-01 00:02:00', 'id': UUID('d7d42913-2dfe-47d6-b0e0-7f71e13e814e'), 'a': 3},
620
+ {'dt': '2023-01-01 00:03:00', 'id': UUID('7e194a2c-26b4-4632-af02-e0a8b2c6ce1e'), 'a': 4},
621
+ {'dt': '2023-01-01 00:04:00', 'id': UUID('31e5fd08-fb81-47f4-8a1c-0c9dcf08ac5e'), 'a': 5},
622
+ ]
623
+ success, msg = source_pipe.sync(update_docs)
624
+ assert success, msg
625
+ assert source_pipe.get_rowcount(debug=debug) == len(docs) + len(new_docs)
626
+
627
+ success, msg = dest_pipe.verify(debug=debug)
628
+ assert success, msg
629
+ assert dest_pipe.get_rowcount(debug=debug) == len(docs) + len(new_docs)
630
+
631
+ df = dest_pipe.get_data(params={'id': 'd7d42913-2dfe-47d6-b0e0-7f71e13e814e'})
632
+ assert len(df) == 1
633
+ assert df['a'][0] == 3
634
+
635
+
539
636
  @pytest.mark.parametrize("flavor", get_flavors())
540
637
  def test_nested_chunks(flavor: str):
541
638
  """
File without changes
File without changes
File without changes