meerschaum 2.2.1__tar.gz → 2.2.2rc2__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 (250) hide show
  1. {meerschaum-2.2.1/meerschaum.egg-info → meerschaum-2.2.2rc2}/PKG-INFO +5 -1
  2. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/Shell.py +31 -13
  3. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/term/__init__.py +1 -1
  4. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/term/tools.py +1 -1
  5. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/api.py +46 -11
  6. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/python.py +31 -15
  7. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/start.py +2 -4
  8. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/upgrade.py +1 -1
  9. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/__init__.py +1 -0
  10. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/components.py +5 -2
  11. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_default.py +1 -0
  12. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_paths.py +11 -12
  13. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_version.py +1 -1
  14. meerschaum-2.2.2rc2/meerschaum/config/paths.py +10 -0
  15. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/static/__init__.py +1 -1
  16. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_sync.py +2 -3
  17. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/packages/__init__.py +114 -38
  18. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/packages/_packages.py +1 -0
  19. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/process.py +0 -1
  20. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/schedule.py +1 -1
  21. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/venv/__init__.py +21 -10
  22. {meerschaum-2.2.1 → meerschaum-2.2.2rc2/meerschaum.egg-info}/PKG-INFO +5 -1
  23. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/SOURCES.txt +1 -0
  24. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/requires.txt +4 -0
  25. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/LICENSE +0 -0
  26. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/NOTICE +0 -0
  27. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/README.md +0 -0
  28. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/__init__.py +0 -0
  29. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/__main__.py +0 -0
  30. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/__init__.py +0 -0
  31. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/arguments/__init__.py +0 -0
  32. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
  33. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/arguments/_parser.py +0 -0
  34. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/docs/__init__.py +0 -0
  35. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/docs/index.py +0 -0
  36. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/entry.py +0 -0
  37. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/__init__.py +0 -0
  38. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/app/__init__.py +0 -0
  39. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/app/_windows.py +0 -0
  40. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/app/actions.py +0 -0
  41. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/app/pipes.py +0 -0
  42. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
  43. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
  44. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/__init__.py +0 -0
  45. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/resources/__init__.py +0 -0
  46. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/term/TermPageHandler.py +0 -0
  47. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/__init__.py +0 -0
  48. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/bootstrap.py +0 -0
  49. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/clear.py +0 -0
  50. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/copy.py +0 -0
  51. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/deduplicate.py +0 -0
  52. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/delete.py +0 -0
  53. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/drop.py +0 -0
  54. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/edit.py +0 -0
  55. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/install.py +0 -0
  56. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/login.py +0 -0
  57. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/os.py +0 -0
  58. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/pause.py +0 -0
  59. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/register.py +0 -0
  60. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/reload.py +0 -0
  61. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/setup.py +0 -0
  62. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/sh.py +0 -0
  63. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/show.py +0 -0
  64. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/sql.py +0 -0
  65. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/stack.py +0 -0
  66. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/stop.py +0 -0
  67. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/sync.py +0 -0
  68. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/tag.py +0 -0
  69. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/uninstall.py +0 -0
  70. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/verify.py +0 -0
  71. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/_chain.py +0 -0
  72. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/_events.py +0 -0
  73. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/_oauth2.py +0 -0
  74. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/_websockets.py +0 -0
  75. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/__init__.py +0 -0
  76. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/actions.py +0 -0
  77. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/__init__.py +0 -0
  78. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/ansi_up.js +0 -0
  79. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
  80. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/favicon.ico +0 -0
  81. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
  82. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
  83. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/__init__.py +0 -0
  84. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/dashboard.py +0 -0
  85. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/jobs.py +0 -0
  86. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/login.py +0 -0
  87. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/plugins.py +0 -0
  88. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/register.py +0 -0
  89. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/connectors.py +0 -0
  90. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/graphs.py +0 -0
  91. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/jobs.py +0 -0
  92. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/keys.py +0 -0
  93. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/__init__.py +0 -0
  94. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/dashboard.py +0 -0
  95. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/error.py +0 -0
  96. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/login.py +0 -0
  97. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/plugins.py +0 -0
  98. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/register.py +0 -0
  99. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pipes.py +0 -0
  100. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/plugins.py +0 -0
  101. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/sync.py +0 -0
  102. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/users.py +0 -0
  103. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/websockets.py +0 -0
  104. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/webterm.py +0 -0
  105. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/__init__.py +0 -0
  106. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/_interfaces.py +0 -0
  107. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/_locations.py +0 -0
  108. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/_metrics.py +0 -0
  109. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/_pipes.py +0 -0
  110. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/__init__.py +0 -0
  111. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/__init__.py +0 -0
  112. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/__init__.py +0 -0
  113. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
  114. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/dash.css +0 -0
  115. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
  116. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/styles.css +0 -0
  117. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/xterm.css +0 -0
  118. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/ico/__init__.py +0 -0
  119. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/ico/logo.ico +0 -0
  120. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/__init__.py +0 -0
  121. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/action_button.js +0 -0
  122. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/main.js +0 -0
  123. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/terminado.js +0 -0
  124. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/xterm.js +0 -0
  125. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/png/__init__.py +0 -0
  126. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/__init__.py +0 -0
  127. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/index.html +0 -0
  128. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/old_index.html +0 -0
  129. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/secret.html +0 -0
  130. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/termpage.html +0 -0
  131. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/__init__.py +0 -0
  132. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_actions.py +0 -0
  133. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_connectors.py +0 -0
  134. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_index.py +0 -0
  135. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_login.py +0 -0
  136. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_misc.py +0 -0
  137. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_pipes.py +0 -0
  138. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_plugins.py +0 -0
  139. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_users.py +0 -0
  140. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_version.py +0 -0
  141. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_webterm.py +0 -0
  142. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/tables/__init__.py +0 -0
  143. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/__init__.py +0 -0
  144. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_dash.py +0 -0
  145. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_edit.py +0 -0
  146. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_environment.py +0 -0
  147. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_formatting.py +0 -0
  148. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_jobs.py +0 -0
  149. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_patch.py +0 -0
  150. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_preprocess.py +0 -0
  151. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_read_config.py +0 -0
  152. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_shell.py +0 -0
  153. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_sync.py +0 -0
  154. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/resources/__init__.py +0 -0
  155. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/__init__.py +0 -0
  156. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/grafana/__init__.py +0 -0
  157. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
  158. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
  159. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/resources/__init__.py +0 -0
  160. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/Connector.py +0 -0
  161. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/__init__.py +0 -0
  162. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/APIConnector.py +0 -0
  163. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/__init__.py +0 -0
  164. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_actions.py +0 -0
  165. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_fetch.py +0 -0
  166. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_login.py +0 -0
  167. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_misc.py +0 -0
  168. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_pipes.py +0 -0
  169. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_plugins.py +0 -0
  170. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_request.py +0 -0
  171. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_uri.py +0 -0
  172. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_users.py +0 -0
  173. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/parse.py +0 -0
  174. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
  175. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/plugin/__init__.py +0 -0
  176. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/poll.py +0 -0
  177. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/SQLConnector.py +0 -0
  178. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/__init__.py +0 -0
  179. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_cli.py +0 -0
  180. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_create_engine.py +0 -0
  181. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_fetch.py +0 -0
  182. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_instance.py +0 -0
  183. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_pipes.py +0 -0
  184. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_plugins.py +0 -0
  185. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_sql.py +0 -0
  186. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_uri.py +0 -0
  187. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_users.py +0 -0
  188. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/tables/__init__.py +0 -0
  189. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/tables/types.py +0 -0
  190. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/tools.py +0 -0
  191. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/__init__.py +0 -0
  192. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_attributes.py +0 -0
  193. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_bootstrap.py +0 -0
  194. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_clear.py +0 -0
  195. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_data.py +0 -0
  196. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_deduplicate.py +0 -0
  197. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_delete.py +0 -0
  198. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_drop.py +0 -0
  199. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_dtypes.py +0 -0
  200. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_edit.py +0 -0
  201. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_fetch.py +0 -0
  202. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_register.py +0 -0
  203. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_show.py +0 -0
  204. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_verify.py +0 -0
  205. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Plugin/__init__.py +0 -0
  206. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/User/_User.py +0 -0
  207. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/User/__init__.py +0 -0
  208. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/__init__.py +0 -0
  209. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/plugins/_Plugin.py +0 -0
  210. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/plugins/__init__.py +0 -0
  211. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/__init__.py +0 -0
  212. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/_get_pipes.py +0 -0
  213. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/Daemon.py +0 -0
  214. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
  215. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/RotatingFile.py +0 -0
  216. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/__init__.py +0 -0
  217. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/_names.py +0 -0
  218. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/dataframe.py +0 -0
  219. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/debug.py +0 -0
  220. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/dtypes/__init__.py +0 -0
  221. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/dtypes/sql.py +0 -0
  222. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/__init__.py +0 -0
  223. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/_jobs.py +0 -0
  224. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/_pipes.py +0 -0
  225. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/_pprint.py +0 -0
  226. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/_shell.py +0 -0
  227. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/interactive.py +0 -0
  228. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/misc.py +0 -0
  229. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/networking.py +0 -0
  230. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/packages/lazy_loader.py +0 -0
  231. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/pool.py +0 -0
  232. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/prompt.py +0 -0
  233. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/sql.py +0 -0
  234. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/threading.py +0 -0
  235. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/typing.py +0 -0
  236. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/venv/_Venv.py +0 -0
  237. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/warnings.py +0 -0
  238. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/yaml.py +0 -0
  239. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/dependency_links.txt +0 -0
  240. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/entry_points.txt +0 -0
  241. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/top_level.txt +0 -0
  242. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/zip-safe +0 -0
  243. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/setup.cfg +0 -0
  244. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/setup.py +0 -0
  245. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_deduplicate.py +0 -0
  246. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_pipes_dtypes.py +0 -0
  247. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_sql.py +0 -0
  248. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_sync.py +0 -0
  249. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_users.py +0 -0
  250. {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_verify.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerschaum
3
- Version: 2.2.1
3
+ Version: 2.2.2rc2
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -65,6 +65,7 @@ Requires-Dist: watchfiles>=0.21.0; extra == "core"
65
65
  Requires-Dist: dill>=0.3.3; extra == "core"
66
66
  Requires-Dist: virtualenv>=20.1.0; extra == "core"
67
67
  Requires-Dist: APScheduler>=4.0.0a5; extra == "core"
68
+ Requires-Dist: uv>=0.2.11; extra == "core"
68
69
  Provides-Extra: drivers
69
70
  Requires-Dist: cryptography>=38.0.1; extra == "drivers"
70
71
  Requires-Dist: psycopg[binary]>=3.1.18; extra == "drivers"
@@ -157,6 +158,7 @@ Requires-Dist: watchfiles>=0.21.0; extra == "sql"
157
158
  Requires-Dist: dill>=0.3.3; extra == "sql"
158
159
  Requires-Dist: virtualenv>=20.1.0; extra == "sql"
159
160
  Requires-Dist: APScheduler>=4.0.0a5; extra == "sql"
161
+ Requires-Dist: uv>=0.2.11; extra == "sql"
160
162
  Provides-Extra: dash
161
163
  Requires-Dist: Flask-Compress>=1.10.1; extra == "dash"
162
164
  Requires-Dist: dash>=2.6.2; extra == "dash"
@@ -214,6 +216,7 @@ Requires-Dist: watchfiles>=0.21.0; extra == "api"
214
216
  Requires-Dist: dill>=0.3.3; extra == "api"
215
217
  Requires-Dist: virtualenv>=20.1.0; extra == "api"
216
218
  Requires-Dist: APScheduler>=4.0.0a5; extra == "api"
219
+ Requires-Dist: uv>=0.2.11; extra == "api"
217
220
  Requires-Dist: pprintpp>=0.4.0; extra == "api"
218
221
  Requires-Dist: asciitree>=0.3.3; extra == "api"
219
222
  Requires-Dist: typing-extensions>=4.7.1; extra == "api"
@@ -261,6 +264,7 @@ Requires-Dist: watchfiles>=0.21.0; extra == "full"
261
264
  Requires-Dist: dill>=0.3.3; extra == "full"
262
265
  Requires-Dist: virtualenv>=20.1.0; extra == "full"
263
266
  Requires-Dist: APScheduler>=4.0.0a5; extra == "full"
267
+ Requires-Dist: uv>=0.2.11; extra == "full"
264
268
  Requires-Dist: cryptography>=38.0.1; extra == "full"
265
269
  Requires-Dist: psycopg[binary]>=3.1.18; extra == "full"
266
270
  Requires-Dist: PyMySQL>=0.9.0; extra == "full"
@@ -203,6 +203,29 @@ def _check_complete_keys(line: str) -> Optional[List[str]]:
203
203
  return None
204
204
 
205
205
 
206
+ def get_shell_intro(with_color: bool = True) -> str:
207
+ """
208
+ Return the introduction message string.
209
+ """
210
+ from meerschaum.utils.formatting import CHARSET, ANSI, colored
211
+ intro = get_config('shell', CHARSET, 'intro', patch=patch)
212
+ intro += '\n' + ''.join(
213
+ [' '
214
+ for i in range(
215
+ string_width(intro) - len('v' + version)
216
+ )
217
+ ]
218
+ ) + 'v' + version
219
+
220
+ if not with_color or not ANSI:
221
+ return intro
222
+
223
+ return colored(
224
+ intro,
225
+ **get_config('shell', 'ansi', 'intro', 'rich')
226
+ )
227
+
228
+
206
229
  class Shell(cmd.Cmd):
207
230
  def __init__(
208
231
  self,
@@ -277,25 +300,20 @@ class Shell(cmd.Cmd):
277
300
  except Exception as e:
278
301
  pass
279
302
 
280
-
281
303
  def load_config(self, instance: Optional[str] = None):
282
304
  """
283
305
  Set attributes from the shell configuration.
284
306
  """
285
307
  from meerschaum.utils.misc import remove_ansi
286
- from meerschaum.utils.formatting import CHARSET, ANSI, UNICODE, colored
308
+ from meerschaum.utils.formatting import CHARSET, ANSI, colored
287
309
 
288
310
  if shell_attrs.get('intro', None) != '':
289
- self.intro = get_config('shell', CHARSET, 'intro', patch=patch)
290
- self.intro += '\n' + ''.join(
291
- [' '
292
- for i in range(
293
- string_width(self.intro) - len('v' + version)
294
- )
295
- ]
296
- ) + 'v' + version
297
- else:
298
- self.intro = ""
311
+ self.intro = (
312
+ get_shell_intro(with_color=False)
313
+ if shell_attrs.get('intro', None) != ''
314
+ else ""
315
+ )
316
+
299
317
  shell_attrs['intro'] = self.intro
300
318
  shell_attrs['_prompt'] = get_config('shell', CHARSET, 'prompt', patch=patch)
301
319
  self.prompt = shell_attrs['_prompt']
@@ -822,7 +840,7 @@ def input_with_sigint(_input, session, shell: Optional[Shell] = None):
822
840
  """
823
841
  Replace built-in `input()` with prompt_toolkit.prompt.
824
842
  """
825
- from meerschaum.utils.formatting import CHARSET, ANSI, UNICODE, colored
843
+ from meerschaum.utils.formatting import CHARSET, ANSI, colored
826
844
  from meerschaum.connectors import is_connected, connectors
827
845
  from meerschaum.utils.misc import remove_ansi
828
846
  from meerschaum.config import get_config
@@ -16,7 +16,7 @@ from meerschaum._internal.term.TermPageHandler import TermPageHandler
16
16
  from meerschaum.config._paths import API_TEMPLATES_PATH, API_STATIC_PATH
17
17
 
18
18
  tornado, tornado_ioloop, terminado = attempt_import(
19
- 'tornado', 'tornado.ioloop', 'terminado', lazy=False, venv=None,
19
+ 'tornado', 'tornado.ioloop', 'terminado', lazy=False,
20
20
  )
21
21
 
22
22
  def get_webterm_app_and_manager() -> Tuple[
@@ -17,7 +17,7 @@ def is_webterm_running(host: str, port: int, protocol: str = 'http') -> int:
17
17
  requests = attempt_import('requests')
18
18
  url = f'{protocol}://{host}:{port}'
19
19
  try:
20
- r = requests.get(url)
20
+ r = requests.get(url, timeout=3)
21
21
  except Exception as e:
22
22
  return False
23
23
  if not r:
@@ -169,7 +169,7 @@ def _api_start(
169
169
  ### `check_update` must be False, because otherwise Uvicorn's hidden imports will break things.
170
170
  dotenv = attempt_import('dotenv', lazy=False)
171
171
  uvicorn, gunicorn = attempt_import(
172
- 'uvicorn', 'gunicorn', venv=None, lazy=False, check_update=False,
172
+ 'uvicorn', 'gunicorn', lazy=False, check_update=False,
173
173
  )
174
174
 
175
175
  uvicorn_config_path = API_UVICORN_RESOURCES_PATH / SERVER_ID / 'config.json'
@@ -306,15 +306,50 @@ def _api_start(
306
306
 
307
307
  def _run_uvicorn():
308
308
  try:
309
- uvicorn.run(
310
- **filter_keywords(
311
- uvicorn.run,
312
- **{
313
- k: v
314
- for k, v in uvicorn_config.items()
315
- if k not in custom_keys
316
- }
317
- )
309
+ uvicorn_flags = [
310
+ '--host', host,
311
+ '--port', str(port),
312
+ (
313
+ '--proxy-headers'
314
+ if uvicorn_config.get('proxy_headers')
315
+ else '--no-proxy-headers'
316
+ ),
317
+ (
318
+ '--use-colors'
319
+ if uvicorn_config.get('use_colors')
320
+ else '--no-use-colors'
321
+ ),
322
+ '--env-file', uvicorn_config['env_file'],
323
+ ]
324
+ if uvicorn_reload := uvicorn_config.get('reload'):
325
+ uvicorn_flags.append('--reload')
326
+ if (
327
+ uvicorn_reload
328
+ and (reload_dirs := uvicorn_config.get('reload_dirs'))
329
+ ):
330
+ if not isinstance(reload_dirs, list):
331
+ reload_dirs = [reload_dirs]
332
+ for reload_dir in reload_dirs:
333
+ uvicorn_flags += ['--reload-dir', reload_dir]
334
+ if (
335
+ uvicorn_reload
336
+ and (reload_excludes := uvicorn_config.get('reload_excludes'))
337
+ ):
338
+ if not isinstance(reload_excludes, list):
339
+ reload_excludes = [reload_excludes]
340
+ for reload_exclude in reload_excludes:
341
+ uvicorn_flags += ['--reload-exclude', reload_exclude]
342
+ if (uvicorn_workers := uvicorn_config.get('workers')) is not None:
343
+ uvicorn_flags += ['--workers', str(uvicorn_workers)]
344
+
345
+ uvicorn_args = uvicorn_flags + ['meerschaum.api:app']
346
+ proc = run_python_package(
347
+ 'uvicorn',
348
+ uvicorn_args,
349
+ venv = 'mrsm',
350
+ as_proc = True,
351
+ foreground = True,
352
+ debug = debug,
318
353
  )
319
354
  except KeyboardInterrupt:
320
355
  pass
@@ -350,7 +385,7 @@ def _api_start(
350
385
  )
351
386
  for k, v in env_dict.items()
352
387
  },
353
- venv = None,
388
+ venv = 'mrsm',
354
389
  debug = debug,
355
390
  )
356
391
  except KeyboardInterrupt:
@@ -10,36 +10,37 @@ from meerschaum.utils.typing import SuccessTuple, Any, List, Optional
10
10
 
11
11
  def python(
12
12
  action: Optional[List[str]] = None,
13
+ venv: Optional[str] = 'mrsm',
14
+ sub_args: Optional[List[str]] = None,
13
15
  debug: bool = False,
14
16
  **kw: Any
15
17
  ) -> SuccessTuple:
16
18
  """
17
- Launch a Python interpreter with Meerschaum imported. Commands are optional.
18
- Note that quotes must be escaped and commands must be separated by semicolons
19
+ Launch a virtual environment's Python interpreter with Meerschaum imported.
20
+ You may pass flags to the Python binary by surrounding each flag with `[]`.
19
21
 
20
22
  Usage:
21
23
  `python {commands}`
22
24
 
23
- Example:
24
- `python print(\\'Hello, World!\\'); pipes = mrsm.get_pipes()`
25
-
26
- ```
27
- Hello, World!
28
-
29
- >>> import meerschaum as mrsm
30
- >>> print('Hello, World!')
31
- >>> pipes = mrsm.get_pipes()
32
- ```
25
+ Examples:
26
+ mrsm python
27
+ mrsm python --venv noaa
28
+ mrsm python [-i] [-c 'print("hi")']
33
29
  """
34
- import sys, subprocess
30
+ import sys, subprocess, os
35
31
  from meerschaum.utils.debug import dprint
36
32
  from meerschaum.utils.warnings import warn, error
37
33
  from meerschaum.utils.process import run_process
34
+ from meerschaum.utils.venv import venv_executable
38
35
  from meerschaum.config import __version__ as _version
36
+ from meerschaum.config.paths import VIRTENV_RESOURCES_PATH
39
37
 
40
38
  if action is None:
41
39
  action = []
42
40
 
41
+ if venv == 'None':
42
+ venv = None
43
+
43
44
  joined_actions = ['import meerschaum as mrsm']
44
45
  line = ""
45
46
  for i, a in enumerate(action):
@@ -51,7 +52,6 @@ def python(
51
52
  line = ""
52
53
 
53
54
  ### ensure meerschaum is imported
54
- # joined_actions = ['import meerschaum as mrsm;'] + joined_actions
55
55
  if debug:
56
56
  dprint(joined_actions)
57
57
 
@@ -75,8 +75,24 @@ def python(
75
75
 
76
76
  if debug:
77
77
  dprint(f"command:\n{command}")
78
+
79
+ env_dict = os.environ.copy()
80
+ venv_path = (VIRTENV_RESOURCES_PATH / venv) if venv is not None else None
81
+ if venv_path is not None:
82
+ env_dict.update({'VIRTUAL_ENV': venv_path.as_posix()})
83
+
84
+ args_to_run = (
85
+ [venv_executable(venv), '-i', '-c', command]
86
+ if not sub_args
87
+ else [venv_executable(venv)] + sub_args
88
+ )
89
+
78
90
  try:
79
- return_code = run_process([sys.executable, '-i', '-c', command], foreground=True)
91
+ return_code = run_process(
92
+ args_to_run,
93
+ foreground = True,
94
+ env = env_dict,
95
+ )
80
96
  except KeyboardInterrupt:
81
97
  return_code = 1
82
98
  return return_code == 0, (
@@ -333,8 +333,7 @@ def _start_gui(
333
333
  from meerschaum.connectors.parse import parse_instance_keys
334
334
  from meerschaum._internal.term.tools import is_webterm_running
335
335
  import platform
336
- webview = attempt_import('webview')
337
- requests = attempt_import('requests')
336
+ webview, requests = attempt_import('webview', 'requests')
338
337
  import json
339
338
  import time
340
339
 
@@ -365,7 +364,7 @@ def _start_gui(
365
364
  base_url = 'http://' + api_kw['host'] + ':' + str(api_kw['port'])
366
365
 
367
366
  process = venv_exec(
368
- start_tornado_code, as_proc=True, venv=None, debug=debug, capture_output=(not debug)
367
+ start_tornado_code, as_proc=True, debug=debug, capture_output=(not debug)
369
368
  )
370
369
  timeout = 10
371
370
  start = time.perf_counter()
@@ -446,7 +445,6 @@ def _start_webterm(
446
445
  + " Include `-f` to start another server on a new port\n"
447
446
  + " or specify a different port with `-p`."
448
447
  )
449
-
450
448
  if not nopretty:
451
449
  info(f"Starting the webterm at http://{host}:{port} ...\n Press CTRL+C to quit.")
452
450
  tornado_app.listen(port, host)
@@ -140,7 +140,7 @@ def _upgrade_packages(
140
140
  if venv is NoVenv:
141
141
  venv = 'mrsm'
142
142
  if len(action) == 0:
143
- group = 'full'
143
+ group = 'api'
144
144
  else:
145
145
  group = action[0]
146
146
 
@@ -31,6 +31,7 @@ CHECK_UPDATE = os.environ.get(STATIC_CONFIG['environment']['runtime'], None) !=
31
31
 
32
32
  endpoints = STATIC_CONFIG['api']['endpoints']
33
33
 
34
+ uv = attempt_import('uv', lazy=False, check_update=CHECK_UPDATE)
34
35
  (
35
36
  fastapi,
36
37
  aiofiles,
@@ -12,7 +12,7 @@ from meerschaum.utils.packages import attempt_import, import_dcc, import_html
12
12
  from meerschaum.utils.typing import SuccessTuple, List
13
13
  from meerschaum.config.static import STATIC_CONFIG
14
14
  from meerschaum.utils.misc import remove_ansi
15
- from meerschaum.actions import get_shell
15
+ from meerschaum._internal.shell.Shell import get_shell_intro
16
16
  from meerschaum.api import endpoints, CHECK_UPDATE
17
17
  from meerschaum.connectors import instance_types
18
18
  from meerschaum.utils.misc import get_connector_labels
@@ -69,7 +69,10 @@ bottom_buttons_content = dbc.Card(
69
69
  ])
70
70
  )
71
71
  )
72
- console_div = html.Div(id='console-div', children=[html.Pre(get_shell().intro, id='console-pre')])
72
+ console_div = html.Div(
73
+ id = 'console-div',
74
+ children = [html.Pre(get_shell_intro(), id='console-pre')],
75
+ )
73
76
 
74
77
  location = dcc.Location(id='location', refresh=False)
75
78
 
@@ -110,6 +110,7 @@ default_system_config = {
110
110
  'space': False,
111
111
  'join_fetch': False,
112
112
  'inplace_sync': True,
113
+ 'uv_pip': True,
113
114
  },
114
115
  }
115
116
  default_pipes_config = {
@@ -82,24 +82,24 @@ for _plugin_path in _plugins_paths_to_remove:
82
82
 
83
83
  ENVIRONMENT_VENVS_DIR = STATIC_CONFIG['environment']['venvs']
84
84
  if ENVIRONMENT_VENVS_DIR in os.environ:
85
- VENVS_DIR_PATH = Path(os.environ[ENVIRONMENT_VENVS_DIR]).resolve()
86
- if not VENVS_DIR_PATH.exists():
85
+ _VENVS_DIR_PATH = Path(os.environ[ENVIRONMENT_VENVS_DIR]).resolve()
86
+ if not _VENVS_DIR_PATH.exists():
87
87
  try:
88
- VENVS_DIR_PATH.mkdir(parents=True, exist_ok=True)
88
+ _VENVS_DIR_PATH.mkdir(parents=True, exist_ok=True)
89
89
  except Exception as e:
90
90
  print(
91
91
  f"Invalid path set for environment variable '{ENVIRONMENT_VENVS_DIR}':\n"
92
- + f"{VENVS_DIR_PATH}"
92
+ + f"{_VENVS_DIR_PATH}"
93
93
  )
94
- VENVS_DIR_PATH = (_ROOT_DIR_PATH / 'venvs').resolve()
95
- print(f"Will use the following path for venvs instead:\n{VENVS_DIR_PATH}")
94
+ _VENVS_DIR_PATH = (_ROOT_DIR_PATH / 'venvs').resolve()
95
+ print(f"Will use the following path for venvs instead:\n{_VENVS_DIR_PATH}")
96
96
  else:
97
- VENVS_DIR_PATH = _ROOT_DIR_PATH / 'venvs'
97
+ _VENVS_DIR_PATH = _ROOT_DIR_PATH / 'venvs'
98
98
 
99
99
  paths = {
100
- 'PACKAGE_ROOT_PATH' : str(Path(__file__).parent.parent.resolve()),
101
- 'ROOT_DIR_PATH' : str(_ROOT_DIR_PATH),
102
- 'VIRTENV_RESOURCES_PATH' : str(VENVS_DIR_PATH),
100
+ 'PACKAGE_ROOT_PATH' : Path(__file__).parent.parent.resolve().as_posix(),
101
+ 'ROOT_DIR_PATH' : _ROOT_DIR_PATH.as_posix(),
102
+ 'VIRTENV_RESOURCES_PATH' : _VENVS_DIR_PATH.as_posix(),
103
103
  'CONFIG_DIR_PATH' : ('{ROOT_DIR_PATH}', 'config'),
104
104
  'DEFAULT_CONFIG_DIR_PATH' : ('{ROOT_DIR_PATH}', 'default_config'),
105
105
  'PATCH_DIR_PATH' : ('{ROOT_DIR_PATH}', 'patch_config'),
@@ -186,7 +186,6 @@ def __getattr__(name: str) -> Path:
186
186
  if name.endswith('RESOURCES_PATH') or name == 'CONFIG_DIR_PATH':
187
187
  path.mkdir(parents=True, exist_ok=True)
188
188
  elif 'FILENAME' in name:
189
- path = str(path)
189
+ path = path.as_posix()
190
190
 
191
191
  return path
192
-
@@ -2,4 +2,4 @@
2
2
  Specify the Meerschaum release version.
3
3
  """
4
4
 
5
- __version__ = "2.2.1"
5
+ __version__ = "2.2.2rc2"
@@ -0,0 +1,10 @@
1
+ #! /usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # vim:fenc=utf-8
4
+
5
+ """
6
+ External API for importing Meerschaum paths.
7
+ """
8
+
9
+ from meerschaum.config._paths import __getattr__, paths
10
+ __all__ = tuple(paths.keys())
@@ -110,7 +110,7 @@ STATIC_CONFIG: Dict[str, Any] = {
110
110
  'pbkdf2_sha256',
111
111
  ],
112
112
  'default': 'pbkdf2_sha256',
113
- 'pbkdf2_sha256__default_rounds': 3_000_000,
113
+ 'pbkdf2_sha256__default_rounds': 1_000_000,
114
114
  },
115
115
  'min_username_length': 1,
116
116
  'max_username_length': 26,
@@ -215,9 +215,8 @@ def sync(
215
215
 
216
216
  ### Activate and invoke `sync(pipe)` for plugin connectors with `sync` methods.
217
217
  try:
218
- if p.connector.type == 'plugin' and p.connector.sync is not None:
219
- connector_plugin = Plugin(p.connector.label)
220
- with Venv(connector_plugin, debug=debug):
218
+ if getattr(p.connector, 'sync', None) is not None:
219
+ with Venv(get_connector_plugin(p.connector), debug=debug):
221
220
  return_tuple = p.connector.sync(p, debug=debug, **kw)
222
221
  p._exists = None
223
222
  if not isinstance(return_tuple, tuple):