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.
- {meerschaum-3.0.4/meerschaum.egg-info → meerschaum-3.0.5}/PKG-INFO +1 -1
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_version.py +1 -1
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/__init__.py +13 -6
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/parse.py +2 -2
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_cli.py +4 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Plugin/_Plugin.py +9 -3
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/plugins/__init__.py +22 -5
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/packages/__init__.py +10 -8
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/venv/_Venv.py +18 -6
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/venv/__init__.py +13 -2
- {meerschaum-3.0.4 → meerschaum-3.0.5/meerschaum.egg-info}/PKG-INFO +1 -1
- {meerschaum-3.0.4 → meerschaum-3.0.5}/LICENSE +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/MANIFEST.in +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/NOTICE +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/README.md +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/__main__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/arguments/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/arguments/_parser.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/cli/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/cli/daemons.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/cli/entry.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/cli/workers.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/docs/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/docs/index.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/entry.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/Shell.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/resources/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/shell/updates.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/static.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/term/TermPageHandler.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/term/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/_internal/term/tools.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/api.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/attach.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/bootstrap.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/clear.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/copy.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/deduplicate.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/delete.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/drop.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/edit.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/index.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/install.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/login.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/os.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/pause.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/python.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/register.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/reload.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/restart.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/setup.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/sh.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/show.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/sql.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/stack.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/start.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/stop.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/sync.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/tag.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/uninstall.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/upgrade.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/actions/verify.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_chain.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_chunks.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_events.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_exceptions.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_oauth2.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_tokens.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/_websockets.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/ansi_up.js +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/favicon.ico +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/custom.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/dashboard.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/jobs.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/login.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/plugins.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/register.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/settings/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/settings/password_reset.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/tokens.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/components.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/connectors.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/graphs.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/jobs.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/keys.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/dashboard.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/error.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/jobs.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/login.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/plugins.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/register.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/settings/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/settings/password_reset.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pages/tokens.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/plugins.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/sessions.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/sync.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/tokens.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/users.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/websockets.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/webterm.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/models/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/models/_actions.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/models/_pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/models/_tokens.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/dash.css +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/styles.css +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/css/xterm.css +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/ico/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/ico/logo.ico +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/action_button.js +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/main.js +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/terminado.js +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/xterm-addon-unicode11.js +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/js/xterm.js +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/static/png/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/index.html +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/old_index.html +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/secret.html +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/resources/templates/termpage.html +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_actions.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_connectors.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_index.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_jobs.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_login.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_misc.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_plugins.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_tokens.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_users.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_version.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/routes/_webterm.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/tables/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_dash.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_default.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_edit.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_formatting.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_jobs.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_patch.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_paths.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_preprocess.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_read_config.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_shell.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/_sync.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/environment.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/paths.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/resources/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/grafana/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/stack/resources/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/config/static.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/_Connector.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_APIConnector.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_actions.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_fetch.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_jobs.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_login.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_misc.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_plugins.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_request.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_tokens.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_uri.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/api/_users.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_InstanceConnector.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_plugins.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_tokens.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/instance/_users.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/plugin/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/poll.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_SQLConnector.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_create_engine.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_fetch.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_instance.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_plugins.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_sql.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_uri.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/_users.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/tables/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/tables/types.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/sql/tools.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_ValkeyConnector.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_fetch.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_plugins.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/connectors/valkey/_users.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_attributes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_bootstrap.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_cache.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_clear.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_copy.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_data.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_deduplicate.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_delete.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_drop.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_dtypes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_edit.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_fetch.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_index.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_register.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_show.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_sync.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Pipe/_verify.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Plugin/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Token/_Token.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/Token/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/User/_User.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/User/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/core/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/jobs/_Executor.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/jobs/_Job.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/jobs/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/jobs/systemd.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/models/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/models/pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/models/tokens.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/models/users.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/plugins/bootstrap.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/_get_pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/Daemon.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/RotatingFile.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/StdinFile.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/daemon/_names.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/dataframe.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/debug.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/dtypes/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/dtypes/sql.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/__init__.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/_jobs.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/_pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/_pprint.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/formatting/_shell.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/interactive.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/misc.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/networking.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/packages/_packages.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/packages/lazy_loader.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/pipes.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/pool.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/process.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/prompt.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/schedule.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/sql.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/threading.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/typing.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/warnings.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/utils/yaml.py +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/SOURCES.txt +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/dependency_links.txt +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/entry_points.txt +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/requires.txt +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/top_level.txt +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum.egg-info/zip-safe +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/pyproject.toml +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/setup.cfg +0 -0
- {meerschaum-3.0.4 → meerschaum-3.0.5}/setup.py +0 -0
@@ -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
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
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(
|
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
|
-
|
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
|
-
|
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
|
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
|
-
)
|
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
|
-
|
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
|
218
|
+
except Exception:
|
219
219
|
mod_path = None
|
220
220
|
|
221
221
|
spec = (
|
222
|
-
importlib.util.find_spec(import_name)
|
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)
|
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
|
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
|
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
|
-
+
|
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
|
-
|
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, '
|
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(
|
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
|
71
|
-
|
72
|
-
|
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:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{meerschaum-3.0.4 → meerschaum-3.0.5}/meerschaum/api/dash/callbacks/settings/password_reset.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|