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.
- {meerschaum-2.2.1/meerschaum.egg-info → meerschaum-2.2.2rc2}/PKG-INFO +5 -1
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/Shell.py +31 -13
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/term/__init__.py +1 -1
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/term/tools.py +1 -1
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/api.py +46 -11
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/python.py +31 -15
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/start.py +2 -4
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/upgrade.py +1 -1
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/__init__.py +1 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/components.py +5 -2
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_default.py +1 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_paths.py +11 -12
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_version.py +1 -1
- meerschaum-2.2.2rc2/meerschaum/config/paths.py +10 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/static/__init__.py +1 -1
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_sync.py +2 -3
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/packages/__init__.py +114 -38
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/packages/_packages.py +1 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/process.py +0 -1
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/schedule.py +1 -1
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/venv/__init__.py +21 -10
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2/meerschaum.egg-info}/PKG-INFO +5 -1
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/SOURCES.txt +1 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/requires.txt +4 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/LICENSE +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/NOTICE +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/README.md +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/__main__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/arguments/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/arguments/_parser.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/docs/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/docs/index.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/entry.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/app/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/app/_windows.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/app/actions.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/gui/app/pipes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/shell/resources/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/_internal/term/TermPageHandler.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/bootstrap.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/clear.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/copy.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/deduplicate.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/delete.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/drop.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/edit.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/install.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/login.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/os.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/pause.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/register.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/reload.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/setup.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/sh.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/show.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/sql.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/stack.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/stop.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/sync.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/tag.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/uninstall.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/actions/verify.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/_chain.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/_events.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/_oauth2.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/_websockets.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/actions.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/ansi_up.js +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/favicon.ico +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/dashboard.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/jobs.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/login.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/plugins.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/callbacks/register.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/connectors.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/graphs.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/jobs.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/keys.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/dashboard.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/error.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/login.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/plugins.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pages/register.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/pipes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/plugins.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/sync.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/users.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/websockets.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/dash/webterm.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/_interfaces.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/_locations.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/_metrics.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/models/_pipes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/dash.css +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/styles.css +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/css/xterm.css +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/ico/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/ico/logo.ico +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/action_button.js +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/main.js +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/terminado.js +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/js/xterm.js +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/static/png/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/index.html +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/old_index.html +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/secret.html +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/resources/templates/termpage.html +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_actions.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_connectors.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_index.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_login.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_misc.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_pipes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_plugins.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_users.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_version.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/routes/_webterm.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/api/tables/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_dash.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_edit.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_environment.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_formatting.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_jobs.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_patch.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_preprocess.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_read_config.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_shell.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/_sync.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/resources/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/grafana/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/config/stack/resources/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/Connector.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/APIConnector.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_actions.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_fetch.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_login.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_misc.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_pipes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_plugins.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_request.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_uri.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/api/_users.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/parse.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/plugin/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/poll.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/SQLConnector.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_cli.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_create_engine.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_fetch.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_instance.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_pipes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_plugins.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_sql.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_uri.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/_users.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/tables/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/tables/types.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/connectors/sql/tools.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_attributes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_bootstrap.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_clear.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_data.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_deduplicate.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_delete.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_drop.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_dtypes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_edit.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_fetch.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_register.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_show.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Pipe/_verify.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/Plugin/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/User/_User.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/User/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/core/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/plugins/_Plugin.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/plugins/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/_get_pipes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/Daemon.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/RotatingFile.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/daemon/_names.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/dataframe.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/debug.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/dtypes/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/dtypes/sql.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/__init__.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/_jobs.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/_pipes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/_pprint.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/formatting/_shell.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/interactive.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/misc.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/networking.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/packages/lazy_loader.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/pool.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/prompt.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/sql.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/threading.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/typing.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/venv/_Venv.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/warnings.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum/utils/yaml.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/dependency_links.txt +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/entry_points.txt +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/top_level.txt +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/meerschaum.egg-info/zip-safe +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/setup.cfg +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/setup.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_deduplicate.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_pipes_dtypes.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_sql.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_sync.py +0 -0
- {meerschaum-2.2.1 → meerschaum-2.2.2rc2}/tests/test_users.py +0 -0
- {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.
|
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,
|
308
|
+
from meerschaum.utils.formatting import CHARSET, ANSI, colored
|
287
309
|
|
288
310
|
if shell_attrs.get('intro', None) != '':
|
289
|
-
self.intro =
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
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,
|
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,
|
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',
|
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
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
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 =
|
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.
|
18
|
-
|
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
|
-
|
24
|
-
|
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(
|
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,
|
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)
|
@@ -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.
|
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(
|
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
|
|
@@ -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
|
-
|
86
|
-
if not
|
85
|
+
_VENVS_DIR_PATH = Path(os.environ[ENVIRONMENT_VENVS_DIR]).resolve()
|
86
|
+
if not _VENVS_DIR_PATH.exists():
|
87
87
|
try:
|
88
|
-
|
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"{
|
92
|
+
+ f"{_VENVS_DIR_PATH}"
|
93
93
|
)
|
94
|
-
|
95
|
-
print(f"Will use the following path for venvs instead:\n{
|
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
|
-
|
97
|
+
_VENVS_DIR_PATH = _ROOT_DIR_PATH / 'venvs'
|
98
98
|
|
99
99
|
paths = {
|
100
|
-
'PACKAGE_ROOT_PATH' :
|
101
|
-
'ROOT_DIR_PATH' :
|
102
|
-
'VIRTENV_RESOURCES_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 =
|
189
|
+
path = path.as_posix()
|
190
190
|
|
191
191
|
return path
|
192
|
-
|
@@ -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':
|
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
|
219
|
-
|
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):
|