meerschaum 3.0.4__tar.gz → 3.0.5__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 (296) hide show
  1. {meerschaum-3.0.4/meerschaum.egg-info → meerschaum-3.0.5}/PKG-INFO +1 -1
  2. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_version.py +1 -1
  3. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/__init__.py +13 -6
  4. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/parse.py +2 -2
  5. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_cli.py +4 -0
  6. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Plugin/_Plugin.py +9 -3
  7. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/plugins/__init__.py +22 -5
  8. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/packages/__init__.py +10 -8
  9. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/venv/_Venv.py +18 -6
  10. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/venv/__init__.py +13 -2
  11. {meerschaum-3.0.4 → meerschaum-3.0.5/meerschaum.egg-info}/PKG-INFO +1 -1
  12. {meerschaum-3.0.4 → meerschaum-3.0.5}/LICENSE +0 -0
  13. {meerschaum-3.0.4 → meerschaum-3.0.5}/MANIFEST.in +0 -0
  14. {meerschaum-3.0.4 → meerschaum-3.0.5}/NOTICE +0 -0
  15. {meerschaum-3.0.4 → meerschaum-3.0.5}/README.md +0 -0
  16. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/__init__.py +0 -0
  17. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/__main__.py +0 -0
  18. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/__init__.py +0 -0
  19. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/arguments/__init__.py +0 -0
  20. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
  21. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/arguments/_parser.py +0 -0
  22. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/cli/__init__.py +0 -0
  23. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/cli/daemons.py +0 -0
  24. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/cli/entry.py +0 -0
  25. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/cli/workers.py +0 -0
  26. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/docs/__init__.py +0 -0
  27. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/docs/index.py +0 -0
  28. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/entry.py +0 -0
  29. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/Shell.py +0 -0
  30. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
  31. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
  32. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/__init__.py +0 -0
  33. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/resources/__init__.py +0 -0
  34. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/updates.py +0 -0
  35. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/static.py +0 -0
  36. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/term/TermPageHandler.py +0 -0
  37. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/term/__init__.py +0 -0
  38. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/term/tools.py +0 -0
  39. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/__init__.py +0 -0
  40. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/api.py +0 -0
  41. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/attach.py +0 -0
  42. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/bootstrap.py +0 -0
  43. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/clear.py +0 -0
  44. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/copy.py +0 -0
  45. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/deduplicate.py +0 -0
  46. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/delete.py +0 -0
  47. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/drop.py +0 -0
  48. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/edit.py +0 -0
  49. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/index.py +0 -0
  50. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/install.py +0 -0
  51. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/login.py +0 -0
  52. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/os.py +0 -0
  53. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/pause.py +0 -0
  54. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/python.py +0 -0
  55. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/register.py +0 -0
  56. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/reload.py +0 -0
  57. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/restart.py +0 -0
  58. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/setup.py +0 -0
  59. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/sh.py +0 -0
  60. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/show.py +0 -0
  61. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/sql.py +0 -0
  62. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/stack.py +0 -0
  63. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/start.py +0 -0
  64. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/stop.py +0 -0
  65. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/sync.py +0 -0
  66. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/tag.py +0 -0
  67. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/uninstall.py +0 -0
  68. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/upgrade.py +0 -0
  69. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/verify.py +0 -0
  70. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/__init__.py +0 -0
  71. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_chain.py +0 -0
  72. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_chunks.py +0 -0
  73. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_events.py +0 -0
  74. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_exceptions.py +0 -0
  75. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_oauth2.py +0 -0
  76. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_tokens.py +0 -0
  77. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_websockets.py +0 -0
  78. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/__init__.py +0 -0
  79. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/__init__.py +0 -0
  80. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/ansi_up.js +0 -0
  81. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
  82. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/favicon.ico +0 -0
  83. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
  84. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
  85. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/__init__.py +0 -0
  86. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/custom.py +0 -0
  87. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/dashboard.py +0 -0
  88. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/jobs.py +0 -0
  89. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/login.py +0 -0
  90. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/pipes.py +0 -0
  91. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/plugins.py +0 -0
  92. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/register.py +0 -0
  93. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/settings/__init__.py +0 -0
  94. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/settings/password_reset.py +0 -0
  95. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/tokens.py +0 -0
  96. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/components.py +0 -0
  97. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/connectors.py +0 -0
  98. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/graphs.py +0 -0
  99. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/jobs.py +0 -0
  100. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/keys.py +0 -0
  101. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/__init__.py +0 -0
  102. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/dashboard.py +0 -0
  103. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/error.py +0 -0
  104. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/jobs.py +0 -0
  105. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/login.py +0 -0
  106. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/pipes.py +0 -0
  107. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/plugins.py +0 -0
  108. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/register.py +0 -0
  109. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/settings/__init__.py +0 -0
  110. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/settings/password_reset.py +0 -0
  111. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/tokens.py +0 -0
  112. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pipes.py +0 -0
  113. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/plugins.py +0 -0
  114. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/sessions.py +0 -0
  115. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/sync.py +0 -0
  116. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/tokens.py +0 -0
  117. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/users.py +0 -0
  118. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/websockets.py +0 -0
  119. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/webterm.py +0 -0
  120. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/models/__init__.py +0 -0
  121. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/models/_actions.py +0 -0
  122. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/models/_pipes.py +0 -0
  123. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/models/_tokens.py +0 -0
  124. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/__init__.py +0 -0
  125. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/__init__.py +0 -0
  126. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/__init__.py +0 -0
  127. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
  128. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/dash.css +0 -0
  129. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
  130. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/styles.css +0 -0
  131. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/xterm.css +0 -0
  132. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/ico/__init__.py +0 -0
  133. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/ico/logo.ico +0 -0
  134. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/__init__.py +0 -0
  135. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/action_button.js +0 -0
  136. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/main.js +0 -0
  137. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/terminado.js +0 -0
  138. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/xterm-addon-unicode11.js +0 -0
  139. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/xterm.js +0 -0
  140. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/png/__init__.py +0 -0
  141. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/__init__.py +0 -0
  142. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/index.html +0 -0
  143. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/old_index.html +0 -0
  144. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/secret.html +0 -0
  145. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/termpage.html +0 -0
  146. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/__init__.py +0 -0
  147. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_actions.py +0 -0
  148. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_connectors.py +0 -0
  149. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_index.py +0 -0
  150. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_jobs.py +0 -0
  151. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_login.py +0 -0
  152. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_misc.py +0 -0
  153. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_pipes.py +0 -0
  154. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_plugins.py +0 -0
  155. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_tokens.py +0 -0
  156. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_users.py +0 -0
  157. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_version.py +0 -0
  158. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_webterm.py +0 -0
  159. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/tables/__init__.py +0 -0
  160. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/__init__.py +0 -0
  161. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_dash.py +0 -0
  162. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_default.py +0 -0
  163. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_edit.py +0 -0
  164. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_formatting.py +0 -0
  165. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_jobs.py +0 -0
  166. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_patch.py +0 -0
  167. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_paths.py +0 -0
  168. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_preprocess.py +0 -0
  169. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_read_config.py +0 -0
  170. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_shell.py +0 -0
  171. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_sync.py +0 -0
  172. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/environment.py +0 -0
  173. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/paths.py +0 -0
  174. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/resources/__init__.py +0 -0
  175. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/__init__.py +0 -0
  176. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/grafana/__init__.py +0 -0
  177. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
  178. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
  179. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/resources/__init__.py +0 -0
  180. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/static.py +0 -0
  181. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/_Connector.py +0 -0
  182. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_APIConnector.py +0 -0
  183. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/__init__.py +0 -0
  184. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_actions.py +0 -0
  185. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_fetch.py +0 -0
  186. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_jobs.py +0 -0
  187. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_login.py +0 -0
  188. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_misc.py +0 -0
  189. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_pipes.py +0 -0
  190. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_plugins.py +0 -0
  191. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_request.py +0 -0
  192. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_tokens.py +0 -0
  193. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_uri.py +0 -0
  194. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_users.py +0 -0
  195. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_InstanceConnector.py +0 -0
  196. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/__init__.py +0 -0
  197. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_pipes.py +0 -0
  198. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_plugins.py +0 -0
  199. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_tokens.py +0 -0
  200. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_users.py +0 -0
  201. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
  202. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/plugin/__init__.py +0 -0
  203. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/poll.py +0 -0
  204. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_SQLConnector.py +0 -0
  205. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/__init__.py +0 -0
  206. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_create_engine.py +0 -0
  207. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_fetch.py +0 -0
  208. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_instance.py +0 -0
  209. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_pipes.py +0 -0
  210. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_plugins.py +0 -0
  211. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_sql.py +0 -0
  212. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_uri.py +0 -0
  213. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_users.py +0 -0
  214. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/tables/__init__.py +0 -0
  215. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/tables/types.py +0 -0
  216. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/tools.py +0 -0
  217. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_ValkeyConnector.py +0 -0
  218. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/__init__.py +0 -0
  219. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_fetch.py +0 -0
  220. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_pipes.py +0 -0
  221. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_plugins.py +0 -0
  222. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_users.py +0 -0
  223. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/__init__.py +0 -0
  224. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_attributes.py +0 -0
  225. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_bootstrap.py +0 -0
  226. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_cache.py +0 -0
  227. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_clear.py +0 -0
  228. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_copy.py +0 -0
  229. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_data.py +0 -0
  230. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_deduplicate.py +0 -0
  231. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_delete.py +0 -0
  232. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_drop.py +0 -0
  233. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_dtypes.py +0 -0
  234. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_edit.py +0 -0
  235. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_fetch.py +0 -0
  236. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_index.py +0 -0
  237. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_register.py +0 -0
  238. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_show.py +0 -0
  239. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_sync.py +0 -0
  240. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_verify.py +0 -0
  241. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Plugin/__init__.py +0 -0
  242. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Token/_Token.py +0 -0
  243. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Token/__init__.py +0 -0
  244. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/User/_User.py +0 -0
  245. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/User/__init__.py +0 -0
  246. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/__init__.py +0 -0
  247. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/jobs/_Executor.py +0 -0
  248. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/jobs/_Job.py +0 -0
  249. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/jobs/__init__.py +0 -0
  250. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/jobs/systemd.py +0 -0
  251. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/models/__init__.py +0 -0
  252. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/models/pipes.py +0 -0
  253. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/models/tokens.py +0 -0
  254. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/models/users.py +0 -0
  255. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/plugins/bootstrap.py +0 -0
  256. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/__init__.py +0 -0
  257. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/_get_pipes.py +0 -0
  258. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/Daemon.py +0 -0
  259. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
  260. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/RotatingFile.py +0 -0
  261. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/StdinFile.py +0 -0
  262. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/__init__.py +0 -0
  263. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/_names.py +0 -0
  264. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/dataframe.py +0 -0
  265. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/debug.py +0 -0
  266. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/dtypes/__init__.py +0 -0
  267. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/dtypes/sql.py +0 -0
  268. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/__init__.py +0 -0
  269. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/_jobs.py +0 -0
  270. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/_pipes.py +0 -0
  271. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/_pprint.py +0 -0
  272. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/_shell.py +0 -0
  273. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/interactive.py +0 -0
  274. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/misc.py +0 -0
  275. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/networking.py +0 -0
  276. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/packages/_packages.py +0 -0
  277. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/packages/lazy_loader.py +0 -0
  278. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/pipes.py +0 -0
  279. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/pool.py +0 -0
  280. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/process.py +0 -0
  281. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/prompt.py +0 -0
  282. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/schedule.py +0 -0
  283. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/sql.py +0 -0
  284. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/threading.py +0 -0
  285. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/typing.py +0 -0
  286. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/warnings.py +0 -0
  287. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/yaml.py +0 -0
  288. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/SOURCES.txt +0 -0
  289. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/dependency_links.txt +0 -0
  290. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/entry_points.txt +0 -0
  291. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/requires.txt +0 -0
  292. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/top_level.txt +0 -0
  293. {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/zip-safe +0 -0
  294. {meerschaum-3.0.4 → meerschaum-3.0.5}/pyproject.toml +0 -0
  295. {meerschaum-3.0.4 → meerschaum-3.0.5}/setup.cfg +0 -0
  296. {meerschaum-3.0.4 → meerschaum-3.0.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meerschaum
3
- Version: 3.0.4
3
+ Version: 3.0.5
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Author-email: Bennett Meares <bennett.meares@gmail.com>
6
6
  Maintainer-email: Bennett Meares <bennett.meares@gmail.com>
@@ -2,4 +2,4 @@
2
2
  Specify the Meerschaum release version.
3
3
  """
4
4
 
5
- __version__ = "3.0.4"
5
+ __version__ = "3.0.5"
@@ -69,6 +69,7 @@ def get_connector(
69
69
  label: str = None,
70
70
  refresh: bool = False,
71
71
  debug: bool = False,
72
+ _load_plugins: bool = True,
72
73
  **kw: Any
73
74
  ) -> Connector:
74
75
  """
@@ -122,11 +123,12 @@ def get_connector(
122
123
  if isinstance(type, str) and not label and ':' in type:
123
124
  type, label = type.split(':', maxsplit=1)
124
125
 
125
- with _locks['_loaded_plugin_connectors']:
126
- if not _loaded_plugin_connectors:
127
- load_plugin_connectors()
128
- _load_builtin_custom_connectors()
129
- _loaded_plugin_connectors = True
126
+ if _load_plugins:
127
+ with _locks['_loaded_plugin_connectors']:
128
+ if not _loaded_plugin_connectors:
129
+ load_plugin_connectors()
130
+ _load_builtin_custom_connectors()
131
+ _loaded_plugin_connectors = True
130
132
 
131
133
  if type is None and label is None:
132
134
  default_instance_keys = get_config('meerschaum', 'instance', patch=True)
@@ -337,12 +339,16 @@ def load_plugin_connectors():
337
339
  for plugin in get_plugins():
338
340
  if plugin is None:
339
341
  continue
342
+
340
343
  with open(plugin.__file__, encoding='utf-8') as f:
341
344
  text = f.read()
345
+
342
346
  if 'make_connector' in text or 'Connector' in text:
343
347
  to_import.append(plugin.name)
348
+
344
349
  if not to_import:
345
350
  return
351
+
346
352
  import_plugins(*to_import)
347
353
 
348
354
 
@@ -354,7 +360,7 @@ def unload_plugin_connectors(
354
360
  Unload custom connectors added by plugins.
355
361
  """
356
362
  from meerschaum.plugins import get_plugins_names
357
- global custom_types, _known_custom_types, types, plugins_types, connectors
363
+ global custom_types, _known_custom_types, types, plugins_types, connectors, _loaded_plugin_connectors
358
364
 
359
365
  plugin_names = plugin_names or get_plugins_names()
360
366
 
@@ -368,6 +374,7 @@ def unload_plugin_connectors(
368
374
 
369
375
  custom_types.clear()
370
376
  custom_types.update(_known_custom_types)
377
+ _loaded_plugin_connectors = False
371
378
 
372
379
 
373
380
  def get_connector_plugin(
@@ -119,11 +119,11 @@ def parse_repo_keys(keys: Optional[str] = None, **kw):
119
119
  if not keys.startswith('api:'):
120
120
  raise ValueError("Only APIConnectors may be treated as repositories.")
121
121
 
122
- return parse_connector_keys(keys, **kw)
122
+ return parse_connector_keys(keys, _load_plugins=kw.pop('_load_plugins', False), **kw)
123
123
 
124
124
 
125
125
  def parse_executor_keys(keys: Optional[str] = None, **kw):
126
- """Parse the executor keys into an APIConnector or string."""
126
+ """Parse the executor keys into an APIConnector, SystemdConnector, or string."""
127
127
  from meerschaum.jobs import get_executor_keys_from_context
128
128
  if keys is None:
129
129
  keys = get_executor_keys_from_context()
@@ -43,6 +43,10 @@ def cli(
43
43
  """
44
44
  from meerschaum.utils.warnings import dprint
45
45
  from meerschaum.utils.venv import venv_exec
46
+
47
+ ### Initialize the engine so that dependencies are resolved.
48
+ _ = self.engine
49
+
46
50
  env = copy.deepcopy(dict(os.environ))
47
51
  env_key = f"MRSM_SQL_{self.label.upper()}"
48
52
  env_val = json.dumps(self.meta)
@@ -776,7 +776,13 @@ class Plugin:
776
776
  return [_d for _d in _deps if not _d.startswith('plugin:')]
777
777
 
778
778
 
779
- def activate_venv(self, dependencies: bool=True, debug: bool=False, **kw) -> bool:
779
+ def activate_venv(
780
+ self,
781
+ dependencies: bool = True,
782
+ init_if_not_exists: bool = True,
783
+ debug: bool = False,
784
+ **kw
785
+ ) -> bool:
780
786
  """
781
787
  Activate the virtual environments for the plugin and its dependencies.
782
788
 
@@ -796,7 +802,7 @@ class Plugin:
796
802
 
797
803
  if dependencies:
798
804
  for plugin in self.get_required_plugins(debug=debug):
799
- plugin.activate_venv(debug=debug, **kw)
805
+ plugin.activate_venv(debug=debug, init_if_not_exists=init_if_not_exists, **kw)
800
806
 
801
807
  vtp = venv_target_path(self.name, debug=debug, allow_nonexistent=True)
802
808
  venv_meerschaum_path = vtp / 'meerschaum'
@@ -812,7 +818,7 @@ class Plugin:
812
818
  if not success:
813
819
  warn(f"Unable to create symlink {venv_meerschaum_path} to {PACKAGE_ROOT_PATH}:\n{msg}")
814
820
 
815
- return activate_venv(self.name, debug=debug, **kw)
821
+ return activate_venv(self.name, init_if_not_exists=init_if_not_exists, debug=debug, **kw)
816
822
 
817
823
 
818
824
  def deactivate_venv(self, dependencies: bool=True, debug: bool = False, **kw) -> bool:
@@ -573,7 +573,7 @@ def import_plugins(
573
573
  for plugin_name in flatten_list(plugins_to_import):
574
574
  plugin = Plugin(plugin_name)
575
575
  try:
576
- with Venv(plugin):
576
+ with Venv(plugin, init_if_not_exists=False):
577
577
  imported_plugins.append(
578
578
  importlib.import_module(
579
579
  f'{PLUGINS_RESOURCES_PATH.stem}.{plugin_name}'
@@ -798,7 +798,8 @@ def unload_plugins(
798
798
  _loaded_plugins = False
799
799
  _synced_symlinks = False
800
800
 
801
- plugins = plugins or get_plugins_names()
801
+ all_plugins = get_plugins_names()
802
+ plugins = plugins or all_plugins
802
803
  if debug:
803
804
  dprint(f"Unloading plugins: {plugins}")
804
805
 
@@ -808,12 +809,26 @@ def unload_plugins(
808
809
  module_prefix = f"{PLUGINS_RESOURCES_PATH.stem}."
809
810
  loaded_modules = [mod_name for mod_name in sys.modules if mod_name.startswith(module_prefix)]
810
811
 
811
- _ = sys.modules.pop(PLUGINS_RESOURCES_PATH.stem, None)
812
+ root_plugins_mod = (
813
+ sys.modules.get(PLUGINS_RESOURCES_PATH.stem, None)
814
+ if sorted(plugins) != sorted(all_plugins)
815
+ else sys.modules.pop(PLUGINS_RESOURCES_PATH, None)
816
+ )
817
+
812
818
  for plugin_name in plugins:
813
819
  for mod_name in loaded_modules:
814
- if mod_name[len(PLUGINS_RESOURCES_PATH.stem):].startswith(plugin_name):
820
+ if (
821
+ mod_name[len(PLUGINS_RESOURCES_PATH.stem):].startswith(plugin_name + '.')
822
+ or mod_name[len(PLUGINS_RESOURCES_PATH.stem):] == plugin_name
823
+ ):
815
824
  _ = sys.modules.pop(mod_name, None)
816
825
 
826
+ if root_plugins_mod is not None and plugin_name in root_plugins_mod.__dict__:
827
+ try:
828
+ delattr(root_plugins_mod, plugin_name)
829
+ except Exception:
830
+ pass
831
+
817
832
  ### Unload sync hooks.
818
833
  _ = _pre_sync_hooks.pop(plugin_name, None)
819
834
  _ = _post_sync_hooks.pop(plugin_name, None)
@@ -896,7 +911,9 @@ def get_plugins(*to_load, try_import: bool = True) -> Union[Tuple[Plugin], Plugi
896
911
  (
897
912
  name if (PLUGINS_RESOURCES_PATH / name).is_dir()
898
913
  else name[:-3]
899
- ) for name in os.listdir(PLUGINS_RESOURCES_PATH) if name != '__init__.py'
914
+ )
915
+ for name in os.listdir(PLUGINS_RESOURCES_PATH)
916
+ if name != '__init__.py'
900
917
  ]
901
918
  )
902
919
  ]
@@ -192,8 +192,7 @@ def manually_import_module(
192
192
  _previously_imported = import_name in sys.modules
193
193
  if _previously_imported and use_sys_modules:
194
194
  return sys.modules[import_name]
195
- if debug:
196
- from meerschaum.utils.debug import dprint
195
+
197
196
  from meerschaum.utils.warnings import warn as warn_function
198
197
  import warnings
199
198
  root_name = import_name.split('.')[0] if split else import_name
@@ -202,6 +201,7 @@ def manually_import_module(
202
201
  root_path = get_module_path(root_name, venv=venv)
203
202
  if root_path is None:
204
203
  return None
204
+
205
205
  mod_path = root_path
206
206
  if mod_path.is_dir():
207
207
  for _dir in import_name.split('.')[:-1]:
@@ -215,15 +215,17 @@ def manually_import_module(
215
215
  mod_path / import_name.split('.')[-1] / '__init__.py'
216
216
  )
217
217
  )
218
- except Exception as e:
218
+ except Exception:
219
219
  mod_path = None
220
220
 
221
221
  spec = (
222
- importlib.util.find_spec(import_name) if mod_path is None or not mod_path.exists()
222
+ importlib.util.find_spec(import_name)
223
+ if mod_path is None or not mod_path.exists()
223
224
  else importlib.util.spec_from_file_location(import_name, str(mod_path))
224
225
  )
225
226
  root_spec = (
226
- importlib.util.find_spec(root_name) if not root_path.exists()
227
+ importlib.util.find_spec(root_name)
228
+ if not root_path.exists()
227
229
  else importlib.util.spec_from_file_location(root_name, str(root_path))
228
230
  )
229
231
 
@@ -277,7 +279,7 @@ def manually_import_module(
277
279
  if spec is None:
278
280
  try:
279
281
  mod = _import_module(import_name)
280
- except Exception as e:
282
+ except Exception:
281
283
  mod = None
282
284
  return mod
283
285
 
@@ -290,7 +292,7 @@ def manually_import_module(
290
292
  with warnings.catch_warnings():
291
293
  warnings.filterwarnings('ignore', 'The NumPy')
292
294
  spec.loader.exec_module(mod)
293
- except Exception as e:
295
+ except Exception:
294
296
  pass
295
297
  mod = _import_module(import_name)
296
298
  if old_sys_mod is not None:
@@ -1412,7 +1414,7 @@ def attempt_import(
1412
1414
  warn_function(
1413
1415
  (f"\n\nMissing package '{name}' from virtual environment '{venv}'; "
1414
1416
  + "some features will not work correctly."
1415
- + f"\n\nSet install=True when calling attempt_import.\n"),
1417
+ + "\n\nSet install=True when calling attempt_import.\n"),
1416
1418
  ImportWarning,
1417
1419
  stacklevel = 3,
1418
1420
  color = False,
@@ -11,7 +11,8 @@ from __future__ import annotations
11
11
  import copy
12
12
  import pathlib
13
13
  from meerschaum.utils.typing import Union
14
- from meerschaum.utils.threading import RLock
14
+
15
+ import meerschaum as mrsm
15
16
 
16
17
 
17
18
  class Venv:
@@ -35,7 +36,8 @@ class Venv:
35
36
 
36
37
  def __init__(
37
38
  self,
38
- venv: Union[str, 'meerschaum.core.Plugin', None] = 'mrsm',
39
+ venv: Union[str, 'mrsm.core.Plugin', None] = 'mrsm',
40
+ init_if_not_exists: bool = True,
39
41
  debug: bool = False,
40
42
  ) -> None:
41
43
  from meerschaum.utils.venv import activate_venv, deactivate_venv, active_venvs
@@ -52,6 +54,7 @@ class Venv:
52
54
  self._deactivate = deactivate_venv
53
55
  self._kwargs = {'venv': venv}
54
56
  self._debug = debug
57
+ self._init_if_not_exists = init_if_not_exists
55
58
  ### In case someone calls `deactivate()` before `activate()`.
56
59
  self._kwargs['previously_active_venvs'] = copy.deepcopy(active_venvs)
57
60
 
@@ -65,11 +68,20 @@ class Venv:
65
68
  from meerschaum.utils.venv import active_venvs, init_venv
66
69
  self._kwargs['previously_active_venvs'] = copy.deepcopy(active_venvs)
67
70
  try:
68
- return self._activate(debug=(debug or self._debug), **self._kwargs)
71
+ return self._activate(
72
+ debug=(debug or self._debug),
73
+ init_if_not_exists=self._init_if_not_exists,
74
+ **self._kwargs
75
+ )
69
76
  except OSError as e:
70
- if not init_venv(self._venv, force=True):
71
- raise e
72
- return self._activate(debug=(debug or self._debug), **self._kwargs)
77
+ if self._init_if_not_exists:
78
+ if not init_venv(self._venv, force=True):
79
+ raise e
80
+ return self._activate(
81
+ debug=(debug or self._debug),
82
+ init_if_not_exists=self._init_if_not_exists,
83
+ **self._kwargs
84
+ )
73
85
 
74
86
 
75
87
  def deactivate(self, debug: bool = False) -> bool:
@@ -39,6 +39,7 @@ def activate_venv(
39
39
  venv: Optional[str] = 'mrsm',
40
40
  color: bool = True,
41
41
  force: bool = False,
42
+ init_if_not_exists: bool = True,
42
43
  debug: bool = False,
43
44
  **kw
44
45
  ) -> bool:
@@ -53,6 +54,9 @@ def activate_venv(
53
54
  color: bool, default True
54
55
  If `True`, include color in debug text.
55
56
 
57
+ init_if_not_exists: bool, default True
58
+ If `True`, create the virtual environment if it does not exist.
59
+
56
60
  force: bool, default False
57
61
  If `True`, do not exit early even if the venv is currently active.
58
62
 
@@ -68,10 +72,12 @@ def activate_venv(
68
72
  if active_venvs_order and active_venvs_order[0] == venv:
69
73
  if not force:
70
74
  return True
75
+
71
76
  import sys
72
77
  import os
73
- if venv is not None:
78
+ if venv is not None and init_if_not_exists:
74
79
  init_venv(venv=venv, debug=debug)
80
+
75
81
  with LOCKS['active_venvs']:
76
82
  if thread_id not in threads_active_venvs:
77
83
  threads_active_venvs[thread_id] = {}
@@ -82,10 +88,14 @@ def activate_venv(
82
88
  threads_active_venvs[thread_id][venv] += 1
83
89
 
84
90
  target_path = venv_target_path(venv, debug=debug, allow_nonexistent=True)
85
- if not target_path.exists():
91
+ if not target_path.exists() and venv is not None and init_if_not_exists:
86
92
  init_venv(venv=venv, force=True, debug=debug)
93
+
87
94
  if not target_path.exists():
95
+ if init_if_not_exists:
96
+ return False
88
97
  raise EnvironmentError(f"Could not activate virtual environment '{venv}'.")
98
+
89
99
  target = target_path.as_posix()
90
100
 
91
101
  if venv in active_venvs_order:
@@ -97,6 +107,7 @@ def activate_venv(
97
107
  active_venvs_order.remove(venv)
98
108
  except Exception:
99
109
  pass
110
+
100
111
  if venv is not None:
101
112
  sys.path.insert(0, target)
102
113
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meerschaum
3
- Version: 3.0.4
3
+ Version: 3.0.5
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Author-email: Bennett Meares <bennett.meares@gmail.com>
6
6
  Maintainer-email: Bennett Meares <bennett.meares@gmail.com>
File without changes
File without changes
File without changes
File without changes