meerschaum 3.0.0rc8__tar.gz → 3.0.1__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.0rc8/meerschaum.egg-info → meerschaum-3.0.1}/PKG-INFO +4 -4
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/cli/workers.py +2 -2
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/entry.py +2 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/term/__init__.py +5 -12
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/api.py +11 -5
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/start.py +30 -2
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/custom.py +2 -1
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/dashboard.py +11 -22
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_default.py +3 -1
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_version.py +1 -1
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/environment.py +26 -2
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_create_engine.py +2 -2
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_pipes.py +3 -6
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/plugins/__init__.py +2 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/packages/__init__.py +3 -1
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/packages/_packages.py +1 -1
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1/meerschaum.egg-info}/PKG-INFO +4 -4
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum.egg-info/requires.txt +3 -3
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/LICENSE +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/MANIFEST.in +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/NOTICE +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/README.md +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/__main__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/arguments/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/arguments/_parser.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/cli/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/cli/daemons.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/cli/entry.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/docs/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/docs/index.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/shell/Shell.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/shell/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/shell/resources/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/shell/updates.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/static.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/term/TermPageHandler.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/_internal/term/tools.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/attach.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/bootstrap.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/clear.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/copy.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/deduplicate.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/delete.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/drop.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/edit.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/index.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/install.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/login.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/os.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/pause.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/python.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/register.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/reload.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/restart.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/setup.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/sh.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/show.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/sql.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/stack.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/stop.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/sync.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/tag.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/uninstall.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/upgrade.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/actions/verify.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/_chain.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/_chunks.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/_events.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/_exceptions.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/_oauth2.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/_tokens.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/_websockets.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/assets/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/assets/ansi_up.js +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/assets/favicon.ico +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/jobs.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/login.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/plugins.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/register.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/settings/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/settings/password_reset.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/callbacks/tokens.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/components.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/connectors.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/graphs.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/jobs.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/keys.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/dashboard.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/error.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/jobs.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/login.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/plugins.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/register.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/settings/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/settings/password_reset.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pages/tokens.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/plugins.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/sessions.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/sync.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/tokens.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/users.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/websockets.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/dash/webterm.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/models/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/models/_actions.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/models/_pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/models/_tokens.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/css/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/css/dash.css +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/css/styles.css +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/css/xterm.css +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/ico/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/ico/logo.ico +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/js/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/js/action_button.js +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/js/main.js +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/js/terminado.js +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/js/xterm-addon-unicode11.js +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/js/xterm.js +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/static/png/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/templates/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/templates/index.html +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/templates/old_index.html +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/templates/secret.html +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/resources/templates/termpage.html +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_actions.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_connectors.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_index.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_jobs.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_login.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_misc.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_plugins.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_tokens.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_users.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_version.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/routes/_webterm.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/api/tables/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_dash.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_edit.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_formatting.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_jobs.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_patch.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_paths.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_preprocess.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_read_config.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_shell.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/_sync.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/paths.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/resources/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/stack/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/stack/grafana/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/stack/resources/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/config/static.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/_Connector.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_APIConnector.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_actions.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_fetch.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_jobs.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_login.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_misc.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_plugins.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_request.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_tokens.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_uri.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/api/_users.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/instance/_InstanceConnector.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/instance/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/instance/_pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/instance/_plugins.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/instance/_tokens.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/instance/_users.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/parse.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/plugin/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/poll.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_SQLConnector.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_cli.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_fetch.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_instance.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_plugins.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_sql.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_uri.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/_users.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/tables/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/tables/types.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/sql/tools.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/valkey/_ValkeyConnector.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/valkey/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/valkey/_fetch.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/valkey/_pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/valkey/_plugins.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/connectors/valkey/_users.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_attributes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_bootstrap.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_cache.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_clear.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_copy.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_data.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_deduplicate.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_delete.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_drop.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_dtypes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_edit.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_fetch.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_index.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_register.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_show.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_sync.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Pipe/_verify.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Plugin/_Plugin.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Plugin/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Token/_Token.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/Token/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/User/_User.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/User/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/core/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/jobs/_Executor.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/jobs/_Job.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/jobs/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/jobs/systemd.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/models/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/models/pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/models/tokens.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/models/users.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/plugins/bootstrap.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/_get_pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/daemon/Daemon.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/daemon/RotatingFile.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/daemon/StdinFile.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/daemon/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/daemon/_names.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/dataframe.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/debug.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/dtypes/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/dtypes/sql.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/formatting/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/formatting/_jobs.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/formatting/_pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/formatting/_pprint.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/formatting/_shell.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/interactive.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/misc.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/networking.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/packages/lazy_loader.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/pipes.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/pool.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/process.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/prompt.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/schedule.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/sql.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/threading.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/typing.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/venv/_Venv.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/venv/__init__.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/warnings.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum/utils/yaml.py +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum.egg-info/SOURCES.txt +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum.egg-info/dependency_links.txt +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum.egg-info/entry_points.txt +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum.egg-info/top_level.txt +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/meerschaum.egg-info/zip-safe +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/pyproject.toml +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/setup.cfg +0 -0
- {meerschaum-3.0.0rc8 → meerschaum-3.0.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: meerschaum
|
3
|
-
Version: 3.0.
|
3
|
+
Version: 3.0.1
|
4
4
|
Summary: Sync Time-Series Pipes with Meerschaum
|
5
5
|
Author-email: Bennett Meares <bennett.meares@gmail.com>
|
6
6
|
Maintainer-email: Bennett Meares <bennett.meares@gmail.com>
|
@@ -134,7 +134,7 @@ Requires-Dist: partd>=1.4.2; extra == "sql"
|
|
134
134
|
Requires-Dist: pytz; extra == "sql"
|
135
135
|
Requires-Dist: joblib>=1.5.1; extra == "sql"
|
136
136
|
Requires-Dist: SQLAlchemy>=2.0.41; extra == "sql"
|
137
|
-
Requires-Dist: GeoAlchemy2>=0.
|
137
|
+
Requires-Dist: GeoAlchemy2>=0.18.0; extra == "sql"
|
138
138
|
Requires-Dist: databases>=0.9.0; extra == "sql"
|
139
139
|
Requires-Dist: aiosqlite>=0.21.0; extra == "sql"
|
140
140
|
Requires-Dist: asyncpg>=0.30.0; extra == "sql"
|
@@ -201,7 +201,7 @@ Requires-Dist: partd>=1.4.2; extra == "api"
|
|
201
201
|
Requires-Dist: pytz; extra == "api"
|
202
202
|
Requires-Dist: joblib>=1.5.1; extra == "api"
|
203
203
|
Requires-Dist: SQLAlchemy>=2.0.41; extra == "api"
|
204
|
-
Requires-Dist: GeoAlchemy2>=0.
|
204
|
+
Requires-Dist: GeoAlchemy2>=0.18.0; extra == "api"
|
205
205
|
Requires-Dist: databases>=0.9.0; extra == "api"
|
206
206
|
Requires-Dist: aiosqlite>=0.21.0; extra == "api"
|
207
207
|
Requires-Dist: asyncpg>=0.30.0; extra == "api"
|
@@ -316,7 +316,7 @@ Requires-Dist: partd>=1.4.2; extra == "full"
|
|
316
316
|
Requires-Dist: pytz; extra == "full"
|
317
317
|
Requires-Dist: joblib>=1.5.1; extra == "full"
|
318
318
|
Requires-Dist: SQLAlchemy>=2.0.41; extra == "full"
|
319
|
-
Requires-Dist: GeoAlchemy2>=0.
|
319
|
+
Requires-Dist: GeoAlchemy2>=0.18.0; extra == "full"
|
320
320
|
Requires-Dist: databases>=0.9.0; extra == "full"
|
321
321
|
Requires-Dist: aiosqlite>=0.21.0; extra == "full"
|
322
322
|
Requires-Dist: asyncpg>=0.30.0; extra == "full"
|
@@ -90,7 +90,7 @@ class ActionWorker:
|
|
90
90
|
"""
|
91
91
|
Return the job associated with this worker.
|
92
92
|
"""
|
93
|
-
from meerschaum.config.paths import CLI_LOGS_RESOURCES_PATH,
|
93
|
+
from meerschaum.config.paths import CLI_LOGS_RESOURCES_PATH, PACKAGE_ROOT_PATH
|
94
94
|
log_path = CLI_LOGS_RESOURCES_PATH / f'cli.{self.ix}.worker.log'
|
95
95
|
|
96
96
|
return Job(
|
@@ -108,7 +108,7 @@ class ActionWorker:
|
|
108
108
|
'redirect_streams': True,
|
109
109
|
'lines_to_show': 0,
|
110
110
|
},
|
111
|
-
'cwd':
|
111
|
+
'cwd': PACKAGE_ROOT_PATH.parent.as_posix(),
|
112
112
|
},
|
113
113
|
)
|
114
114
|
|
@@ -62,6 +62,7 @@ def entry(
|
|
62
62
|
A `SuccessTuple` indicating success.
|
63
63
|
"""
|
64
64
|
start = time.perf_counter()
|
65
|
+
from meerschaum.config.environment import get_daemon_env_vars
|
65
66
|
sysargs_list = shlex.split(sysargs) if isinstance(sysargs, str) else sysargs
|
66
67
|
if (
|
67
68
|
not _use_cli_daemon
|
@@ -69,6 +70,7 @@ def entry(
|
|
69
70
|
or '--no-daemon' in sysargs_list
|
70
71
|
or '--daemon' in sysargs_list
|
71
72
|
or '-d' in sysargs_list
|
73
|
+
or get_daemon_env_vars()
|
72
74
|
or not mrsm.get_config('system', 'experimental', 'cli_daemon')
|
73
75
|
):
|
74
76
|
success, msg = entry_without_daemon(sysargs, _patch_args=_patch_args)
|
@@ -40,23 +40,16 @@ def get_webterm_app_and_manager(
|
|
40
40
|
-------
|
41
41
|
A tuple of the Tornado web application and term manager.
|
42
42
|
"""
|
43
|
-
from meerschaum.config.environment import get_env_vars
|
44
|
-
from meerschaum._internal.static import STATIC_CONFIG
|
43
|
+
from meerschaum.config.environment import get_env_vars, get_daemon_env_vars
|
45
44
|
if env_path is None:
|
46
45
|
from meerschaum.config.paths import WEBTERM_INTERNAL_RESOURCES_PATH
|
47
46
|
env_path = WEBTERM_INTERNAL_RESOURCES_PATH / (str(port) + '.json')
|
48
47
|
|
49
|
-
|
48
|
+
daemon_env_vars = get_daemon_env_vars()
|
50
49
|
env_dict = {
|
51
|
-
env_var:
|
52
|
-
for env_var in
|
53
|
-
if env_var not in
|
54
|
-
STATIC_CONFIG['environment']['systemd_log_path'],
|
55
|
-
STATIC_CONFIG['environment']['systemd_result_path'],
|
56
|
-
STATIC_CONFIG['environment']['systemd_delete_job'],
|
57
|
-
STATIC_CONFIG['environment']['systemd_stdin_path'],
|
58
|
-
STATIC_CONFIG['environment']['daemon_id'],
|
59
|
-
)
|
50
|
+
env_var: env_val
|
51
|
+
for env_var, env_val in get_env_vars().items()
|
52
|
+
if env_var not in daemon_env_vars
|
60
53
|
}
|
61
54
|
with open(env_path, 'w+', encoding='utf-8') as f:
|
62
55
|
json.dump(env_dict, f)
|
@@ -173,7 +173,7 @@ def _api_start(
|
|
173
173
|
ROOT_DIR_PATH,
|
174
174
|
)
|
175
175
|
from meerschaum.config._patch import apply_patch_to_config
|
176
|
-
from meerschaum.config.environment import get_env_vars
|
176
|
+
from meerschaum.config.environment import get_env_vars, get_daemon_env_vars
|
177
177
|
from meerschaum._internal.static import STATIC_CONFIG, SERVER_ID
|
178
178
|
from meerschaum.connectors.parse import parse_instance_keys
|
179
179
|
from meerschaum.utils.pool import get_pool
|
@@ -335,11 +335,17 @@ def _api_start(
|
|
335
335
|
)
|
336
336
|
),
|
337
337
|
'HOSTNAME': os.environ.get('HOSTNAME', 'api'),
|
338
|
+
'XDG_RUNTIME_DIR': os.environ.get('XDG_RUNTIME_DIR', ''),
|
339
|
+
'DBUS_SESSION_BUS_ADDRESS': os.environ.get('DBUS_SESSION_BUS_ADDRESS', ''),
|
338
340
|
})
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
341
|
+
|
342
|
+
daemon_env_vars = get_daemon_env_vars()
|
343
|
+
env_vars = {
|
344
|
+
env_var: env_val
|
345
|
+
for env_var, env_val in get_env_vars().items()
|
346
|
+
if env_var not in daemon_env_vars and env_var not in env_dict
|
347
|
+
}
|
348
|
+
env_dict.update(env_vars)
|
343
349
|
|
344
350
|
env_dict[MRSM_CONFIG] = apply_patch_to_config(
|
345
351
|
env_dict.get(MRSM_CONFIG, {}),
|
@@ -94,6 +94,7 @@ def _start_jobs(
|
|
94
94
|
sysargs: Optional[List[str]] = None,
|
95
95
|
executor_keys: Optional[str] = None,
|
96
96
|
rm: bool = False,
|
97
|
+
line: Optional[str] = None,
|
97
98
|
debug: bool = False,
|
98
99
|
**kw
|
99
100
|
) -> SuccessTuple:
|
@@ -125,6 +126,7 @@ def _start_jobs(
|
|
125
126
|
- `start job --name happy_seal`
|
126
127
|
Start the job 'happy_seal' but via the `--name` flag.
|
127
128
|
"""
|
129
|
+
import shlex
|
128
130
|
from meerschaum.utils.warnings import warn, info
|
129
131
|
from meerschaum.utils.daemon._names import get_new_daemon_name
|
130
132
|
from meerschaum.jobs import (
|
@@ -215,7 +217,29 @@ def _start_jobs(
|
|
215
217
|
|
216
218
|
def _run_new_job(name: Optional[str] = None):
|
217
219
|
name = name or get_new_daemon_name()
|
218
|
-
|
220
|
+
if len(sysargs or []) >= 2 and sysargs[0] == 'start' and sysargs[1].startswith('job'):
|
221
|
+
return (False, "Create a new job with `-d` / `--daemon`."), name
|
222
|
+
|
223
|
+
job_sysargs = (
|
224
|
+
shlex.join([a for a in sysargs if a not in ('-d', '--daemon')])
|
225
|
+
if not line
|
226
|
+
else line
|
227
|
+
)
|
228
|
+
job = Job(name, job_sysargs, executor_keys=executor_keys, delete_after_completion=rm)
|
229
|
+
|
230
|
+
if not job.exists():
|
231
|
+
try:
|
232
|
+
confirm = yes_no(
|
233
|
+
f"Create new job '{name}'?\n {job_sysargs}\n",
|
234
|
+
default='y',
|
235
|
+
yes=kw.get('yes', False),
|
236
|
+
noask=kw.get('noask', False),
|
237
|
+
)
|
238
|
+
except Exception:
|
239
|
+
confirm = True
|
240
|
+
if not confirm:
|
241
|
+
return (False, "Nothing changed."), name
|
242
|
+
|
219
243
|
return job.start(debug=debug), name
|
220
244
|
|
221
245
|
def _run_existing_job(name: str):
|
@@ -288,6 +312,7 @@ def _start_jobs(
|
|
288
312
|
if new_job
|
289
313
|
else _run_existing_job(_name)
|
290
314
|
)
|
315
|
+
|
291
316
|
if not kw.get('nopretty', False):
|
292
317
|
print_tuple(success_tuple)
|
293
318
|
|
@@ -303,7 +328,10 @@ def _start_jobs(
|
|
303
328
|
+ ("Failed to start job" + ("s" if len(_failures) != 1 else '')
|
304
329
|
+ f" {items_str(_failures)}." if _failures else '')
|
305
330
|
)
|
306
|
-
|
331
|
+
if not msg:
|
332
|
+
msg = "Nothing changed."
|
333
|
+
else:
|
334
|
+
_install_healthcheck_job()
|
307
335
|
return len(_failures) == 0, msg
|
308
336
|
|
309
337
|
|
@@ -7,7 +7,6 @@ Import custom callbacks created by plugins.
|
|
7
7
|
"""
|
8
8
|
|
9
9
|
import traceback
|
10
|
-
from typing import Any, Dict
|
11
10
|
|
12
11
|
from meerschaum.api.dash import dash_app
|
13
12
|
from meerschaum.plugins import _dash_plugins, _plugin_endpoints_to_pages
|
@@ -47,6 +46,8 @@ def add_plugin_pages(debug: bool = False):
|
|
47
46
|
else:
|
48
47
|
page_layout = [pages_navbar, page_layout]
|
49
48
|
_pages[_page_dict['page_key']] = _endpoint
|
49
|
+
if not _endpoint.lstrip('/').startswith('dash'):
|
50
|
+
_endpoint = '/dash/' + _endpoint.lstrip('/')
|
50
51
|
_paths[_endpoint] = page_layout
|
51
52
|
if _page_dict['login_required']:
|
52
53
|
_required_login.add(_endpoint)
|
@@ -99,16 +99,15 @@ omit_actions = {
|
|
99
99
|
|
100
100
|
### Map endpoints to page layouts.
|
101
101
|
_paths = {
|
102
|
-
'login' : pages.login.layout,
|
103
|
-
''
|
104
|
-
'
|
105
|
-
'
|
106
|
-
'
|
107
|
-
'
|
108
|
-
'
|
109
|
-
'jobs' : pages.jobs.layout,
|
102
|
+
'/dash/login' : pages.login.layout,
|
103
|
+
'/dash' : pages.dashboard.layout,
|
104
|
+
'/dash/plugins' : pages.plugins.layout,
|
105
|
+
'/dash/tokens' : pages.tokens.layout,
|
106
|
+
'/dash/register': pages.register.layout,
|
107
|
+
'/dash/pipes' : pages.pipes.layout,
|
108
|
+
'/dash/jobs' : pages.jobs.layout,
|
110
109
|
}
|
111
|
-
_required_login = {'', 'tokens', 'jobs', 'pipes'}
|
110
|
+
_required_login = {'', '/dash', '/dash/', '/dash/tokens', '/dash/jobs', '/dash/pipes'}
|
112
111
|
_pages = {
|
113
112
|
'Web Console': '/dash/',
|
114
113
|
'Pipes': '/dash/pipes',
|
@@ -145,7 +144,6 @@ def update_page_layout_div(
|
|
145
144
|
-------
|
146
145
|
A tuple of the page layout and new session store data.
|
147
146
|
"""
|
148
|
-
dash_endpoint = endpoints['dash']
|
149
147
|
try:
|
150
148
|
session_id = session_store_data.get('session-id', None)
|
151
149
|
except AttributeError:
|
@@ -162,18 +160,9 @@ def update_page_layout_div(
|
|
162
160
|
else:
|
163
161
|
session_store_to_return = dash.no_update
|
164
162
|
|
165
|
-
base_path = (
|
166
|
-
pathname.rstrip('/') + '/'
|
167
|
-
).replace(
|
168
|
-
(dash_endpoint + '/'),
|
169
|
-
''
|
170
|
-
).rstrip('/').split('/')[0]
|
171
|
-
|
163
|
+
base_path = '/'.join(pathname.split('/')[:2])
|
172
164
|
complete_path = (
|
173
165
|
pathname.rstrip('/') + '/'
|
174
|
-
).replace(
|
175
|
-
dash_endpoint + '/',
|
176
|
-
''
|
177
166
|
).rstrip('/')
|
178
167
|
|
179
168
|
if complete_path in _paths:
|
@@ -181,14 +170,14 @@ def update_page_layout_div(
|
|
181
170
|
elif base_path in _paths:
|
182
171
|
path_str = base_path
|
183
172
|
else:
|
184
|
-
path_str = ''
|
173
|
+
path_str = '/dash'
|
185
174
|
|
186
175
|
path = (
|
187
176
|
path_str
|
188
177
|
if no_auth or path_str not in _required_login else (
|
189
178
|
path_str
|
190
179
|
if is_session_active(session_id)
|
191
|
-
else 'login'
|
180
|
+
else '/dash/login'
|
192
181
|
)
|
193
182
|
)
|
194
183
|
layout = _paths.get(path, pages.error.layout)
|
@@ -129,12 +129,14 @@ default_system_config = {
|
|
129
129
|
'edit',
|
130
130
|
'start daemon',
|
131
131
|
'start job',
|
132
|
+
'stop job',
|
133
|
+
'delete job',
|
132
134
|
'stop daemon',
|
133
135
|
'show daemon',
|
134
136
|
'restart daemon',
|
135
137
|
'reload',
|
136
138
|
'start worker',
|
137
|
-
'
|
139
|
+
'show log',
|
138
140
|
'python',
|
139
141
|
'login',
|
140
142
|
'executor',
|
@@ -162,13 +162,37 @@ def apply_connector_uri(env_var: str, env: Optional[Dict[str, Any]] = None) -> N
|
|
162
162
|
)
|
163
163
|
|
164
164
|
|
165
|
-
def get_env_vars(env: Optional[Dict[str, Any]] = None) ->
|
165
|
+
def get_env_vars(env: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
166
166
|
"""
|
167
167
|
Return all environment variables which begin with `'MRSM_'`.
|
168
168
|
"""
|
169
169
|
prefix = STATIC_CONFIG['environment']['prefix']
|
170
170
|
env = env if env is not None else os.environ
|
171
|
-
return
|
171
|
+
return {
|
172
|
+
env_var: env_val
|
173
|
+
for env_var, env_val in env.items()
|
174
|
+
if env_var.startswith(prefix)
|
175
|
+
}
|
176
|
+
|
177
|
+
|
178
|
+
def get_daemon_env_vars(env: Optional[Dict[str, Any]] = None) -> Dict[str, str]:
|
179
|
+
"""
|
180
|
+
Return the daemon-specific environment vars in the current environment.
|
181
|
+
"""
|
182
|
+
env = env if env is not None else os.environ
|
183
|
+
|
184
|
+
daemon_env_var_names = (
|
185
|
+
STATIC_CONFIG['environment']['systemd_log_path'],
|
186
|
+
STATIC_CONFIG['environment']['systemd_result_path'],
|
187
|
+
STATIC_CONFIG['environment']['systemd_delete_job'],
|
188
|
+
STATIC_CONFIG['environment']['systemd_stdin_path'],
|
189
|
+
STATIC_CONFIG['environment']['daemon_id'],
|
190
|
+
)
|
191
|
+
return {
|
192
|
+
env_var: env.get(env_var, '')
|
193
|
+
for env_var in daemon_env_var_names
|
194
|
+
if env_var in env
|
195
|
+
}
|
172
196
|
|
173
197
|
|
174
198
|
@contextlib.contextmanager
|
@@ -23,9 +23,9 @@ install_flavor_drivers = {
|
|
23
23
|
'mysql': ['pymysql'],
|
24
24
|
'mariadb': ['pymysql'],
|
25
25
|
'timescaledb': ['psycopg'],
|
26
|
-
'timescaledb-ha': ['psycopg', '
|
26
|
+
'timescaledb-ha': ['psycopg', 'geoalchemy2'],
|
27
27
|
'postgresql': ['psycopg'],
|
28
|
-
'postgis': ['psycopg', '
|
28
|
+
'postgis': ['psycopg', 'geoalchemy2'],
|
29
29
|
'citus': ['psycopg'],
|
30
30
|
'cockroachdb': ['psycopg', 'sqlalchemy_cockroachdb', 'sqlalchemy_cockroachdb.psycopg'],
|
31
31
|
'mssql': ['pyodbc'],
|
@@ -280,22 +280,19 @@ def fetch_pipes_keys(
|
|
280
280
|
|
281
281
|
ors, nands = [], []
|
282
282
|
if self.flavor in json_flavors:
|
283
|
+
tags_jsonb = pipes_tbl.c['parameters'].cast(JSONB).op('->')('tags').cast(JSONB)
|
283
284
|
for _in_tags, _ex_tags in in_ex_tag_groups:
|
284
285
|
if _in_tags:
|
285
286
|
ors.append(
|
286
287
|
sqlalchemy.and_(
|
287
|
-
|
288
|
-
JSONB
|
289
|
-
).contains(_in_tags)
|
288
|
+
tags_jsonb.contains(_in_tags)
|
290
289
|
)
|
291
290
|
)
|
292
291
|
for xt in _ex_tags:
|
293
292
|
nands.append(
|
294
293
|
sqlalchemy.not_(
|
295
294
|
sqlalchemy.and_(
|
296
|
-
|
297
|
-
JSONB
|
298
|
-
).contains([xt])
|
295
|
+
tags_jsonb.contains([xt])
|
299
296
|
)
|
300
297
|
)
|
301
298
|
)
|
@@ -652,7 +652,9 @@ def need_update(
|
|
652
652
|
if required_version:
|
653
653
|
semver_path = get_module_path('semver', debug=debug)
|
654
654
|
if semver_path is None:
|
655
|
-
|
655
|
+
no_venv_semver_path = get_module_path('semver', venv=None, debug=debug)
|
656
|
+
if no_venv_semver_path is None:
|
657
|
+
pip_install(_import_to_install_name('semver'), debug=debug)
|
656
658
|
semver = attempt_import('semver', check_update=False, lazy=False, debug=debug)
|
657
659
|
if check_pypi:
|
658
660
|
### Check PyPI for updates
|
@@ -146,7 +146,7 @@ packages['sql'] = {
|
|
146
146
|
'pytz' : 'pytz',
|
147
147
|
'joblib' : 'joblib>=1.5.1',
|
148
148
|
'sqlalchemy' : 'SQLAlchemy>=2.0.41',
|
149
|
-
'
|
149
|
+
'geoalchemy2' : 'GeoAlchemy2>=0.18.0',
|
150
150
|
'databases' : 'databases>=0.9.0',
|
151
151
|
'aiosqlite' : 'aiosqlite>=0.21.0',
|
152
152
|
'asyncpg' : 'asyncpg>=0.30.0',
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: meerschaum
|
3
|
-
Version: 3.0.
|
3
|
+
Version: 3.0.1
|
4
4
|
Summary: Sync Time-Series Pipes with Meerschaum
|
5
5
|
Author-email: Bennett Meares <bennett.meares@gmail.com>
|
6
6
|
Maintainer-email: Bennett Meares <bennett.meares@gmail.com>
|
@@ -134,7 +134,7 @@ Requires-Dist: partd>=1.4.2; extra == "sql"
|
|
134
134
|
Requires-Dist: pytz; extra == "sql"
|
135
135
|
Requires-Dist: joblib>=1.5.1; extra == "sql"
|
136
136
|
Requires-Dist: SQLAlchemy>=2.0.41; extra == "sql"
|
137
|
-
Requires-Dist: GeoAlchemy2>=0.
|
137
|
+
Requires-Dist: GeoAlchemy2>=0.18.0; extra == "sql"
|
138
138
|
Requires-Dist: databases>=0.9.0; extra == "sql"
|
139
139
|
Requires-Dist: aiosqlite>=0.21.0; extra == "sql"
|
140
140
|
Requires-Dist: asyncpg>=0.30.0; extra == "sql"
|
@@ -201,7 +201,7 @@ Requires-Dist: partd>=1.4.2; extra == "api"
|
|
201
201
|
Requires-Dist: pytz; extra == "api"
|
202
202
|
Requires-Dist: joblib>=1.5.1; extra == "api"
|
203
203
|
Requires-Dist: SQLAlchemy>=2.0.41; extra == "api"
|
204
|
-
Requires-Dist: GeoAlchemy2>=0.
|
204
|
+
Requires-Dist: GeoAlchemy2>=0.18.0; extra == "api"
|
205
205
|
Requires-Dist: databases>=0.9.0; extra == "api"
|
206
206
|
Requires-Dist: aiosqlite>=0.21.0; extra == "api"
|
207
207
|
Requires-Dist: asyncpg>=0.30.0; extra == "api"
|
@@ -316,7 +316,7 @@ Requires-Dist: partd>=1.4.2; extra == "full"
|
|
316
316
|
Requires-Dist: pytz; extra == "full"
|
317
317
|
Requires-Dist: joblib>=1.5.1; extra == "full"
|
318
318
|
Requires-Dist: SQLAlchemy>=2.0.41; extra == "full"
|
319
|
-
Requires-Dist: GeoAlchemy2>=0.
|
319
|
+
Requires-Dist: GeoAlchemy2>=0.18.0; extra == "full"
|
320
320
|
Requires-Dist: databases>=0.9.0; extra == "full"
|
321
321
|
Requires-Dist: aiosqlite>=0.21.0; extra == "full"
|
322
322
|
Requires-Dist: asyncpg>=0.30.0; extra == "full"
|
@@ -19,7 +19,7 @@ partd>=1.4.2
|
|
19
19
|
pytz
|
20
20
|
joblib>=1.5.1
|
21
21
|
SQLAlchemy>=2.0.41
|
22
|
-
GeoAlchemy2>=0.
|
22
|
+
GeoAlchemy2>=0.18.0
|
23
23
|
databases>=0.9.0
|
24
24
|
aiosqlite>=0.21.0
|
25
25
|
asyncpg>=0.30.0
|
@@ -234,7 +234,7 @@ partd>=1.4.2
|
|
234
234
|
pytz
|
235
235
|
joblib>=1.5.1
|
236
236
|
SQLAlchemy>=2.0.41
|
237
|
-
GeoAlchemy2>=0.
|
237
|
+
GeoAlchemy2>=0.18.0
|
238
238
|
databases>=0.9.0
|
239
239
|
aiosqlite>=0.21.0
|
240
240
|
asyncpg>=0.30.0
|
@@ -288,7 +288,7 @@ partd>=1.4.2
|
|
288
288
|
pytz
|
289
289
|
joblib>=1.5.1
|
290
290
|
SQLAlchemy>=2.0.41
|
291
|
-
GeoAlchemy2>=0.
|
291
|
+
GeoAlchemy2>=0.18.0
|
292
292
|
databases>=0.9.0
|
293
293
|
aiosqlite>=0.21.0
|
294
294
|
asyncpg>=0.30.0
|
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
|