meerschaum 2.8.4__tar.gz → 2.9.0.dev1__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.8.4/meerschaum.egg-info → meerschaum-2.9.0.dev1}/PKG-INFO +4 -1
- meerschaum-2.9.0.dev1/meerschaum/api/_chunks.py +67 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/callbacks/custom.py +23 -2
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/callbacks/dashboard.py +41 -3
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/components.py +27 -19
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/pages/dashboard.py +11 -9
- meerschaum-2.9.0.dev1/meerschaum/api/dash/pages/plugins.py +55 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/webterm.py +6 -3
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/css/dash.css +1 -1
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/templates/termpage.html +4 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_pipes.py +191 -78
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_default.py +3 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_version.py +1 -1
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_APIConnector.py +12 -1
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_pipes.py +27 -15
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_plugins.py +51 -45
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_request.py +1 -1
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/parse.py +1 -2
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_data.py +1 -2
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/plugins/_Plugin.py +21 -5
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/plugins/__init__.py +6 -4
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/formatting/_shell.py +1 -4
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/packages/_packages.py +1 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/venv/__init__.py +2 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1/meerschaum.egg-info}/PKG-INFO +4 -1
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum.egg-info/SOURCES.txt +1 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum.egg-info/requires.txt +3 -0
- meerschaum-2.8.4/meerschaum/api/dash/pages/plugins.py +0 -51
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/LICENSE +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/NOTICE +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/README.md +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/__main__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/arguments/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/arguments/_parser.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/docs/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/docs/index.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/entry.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/gui/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/gui/app/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/gui/app/_windows.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/gui/app/actions.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/gui/app/pipes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/shell/Shell.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/shell/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/shell/resources/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/shell/updates.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/term/TermPageHandler.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/term/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/_internal/term/tools.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/api.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/attach.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/bootstrap.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/clear.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/copy.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/deduplicate.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/delete.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/drop.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/edit.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/index.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/install.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/login.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/os.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/pause.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/python.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/register.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/reload.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/restart.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/setup.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/sh.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/show.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/sql.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/stack.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/start.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/stop.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/sync.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/tag.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/uninstall.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/upgrade.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/actions/verify.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/_chain.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/_events.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/_exceptions.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/_oauth2.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/_websockets.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/assets/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/assets/ansi_up.js +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/assets/favicon.ico +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/callbacks/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/callbacks/jobs.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/callbacks/login.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/callbacks/pipes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/callbacks/plugins.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/callbacks/register.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/connectors.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/graphs.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/jobs.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/keys.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/pages/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/pages/error.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/pages/job.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/pages/login.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/pages/pipes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/pages/register.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/pipes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/plugins.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/sessions.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/sync.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/users.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/dash/websockets.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/models/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/models/_interfaces.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/models/_locations.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/models/_metrics.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/models/_pipes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/css/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/css/styles.css +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/css/xterm.css +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/ico/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/ico/logo.ico +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/js/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/js/action_button.js +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/js/main.js +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/js/terminado.js +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/js/xterm.js +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/static/png/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/templates/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/templates/index.html +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/templates/old_index.html +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/resources/templates/secret.html +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_actions.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_connectors.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_index.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_jobs.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_login.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_misc.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_plugins.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_users.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_version.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/routes/_webterm.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/api/tables/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_dash.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_edit.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_environment.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_formatting.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_jobs.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_patch.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_paths.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_preprocess.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_read_config.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_shell.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/_sync.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/paths.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/resources/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/stack/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/stack/grafana/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/stack/resources/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/config/static/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/_Connector.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_actions.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_fetch.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_jobs.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_login.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_misc.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_uri.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/api/_users.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/plugin/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/poll.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_SQLConnector.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_cli.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_create_engine.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_fetch.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_instance.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_pipes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_plugins.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_sql.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_uri.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/_users.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/tables/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/tables/types.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/sql/tools.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/valkey/_ValkeyConnector.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/valkey/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/valkey/_fetch.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/valkey/_pipes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/valkey/_plugins.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/connectors/valkey/_users.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_attributes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_bootstrap.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_clear.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_copy.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_deduplicate.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_delete.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_drop.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_dtypes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_edit.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_fetch.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_index.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_register.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_show.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_sync.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Pipe/_verify.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/Plugin/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/User/_User.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/User/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/core/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/jobs/_Executor.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/jobs/_Job.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/jobs/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/jobs/systemd.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/plugins/bootstrap.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/_get_pipes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/daemon/Daemon.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/daemon/RotatingFile.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/daemon/StdinFile.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/daemon/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/daemon/_names.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/dataframe.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/debug.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/dtypes/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/dtypes/sql.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/formatting/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/formatting/_jobs.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/formatting/_pipes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/formatting/_pprint.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/interactive.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/misc.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/networking.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/packages/__init__.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/packages/lazy_loader.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/pool.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/process.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/prompt.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/schedule.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/sql.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/threading.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/typing.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/venv/_Venv.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/warnings.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum/utils/yaml.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum.egg-info/dependency_links.txt +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum.egg-info/entry_points.txt +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum.egg-info/top_level.txt +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/meerschaum.egg-info/zip-safe +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/setup.cfg +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/setup.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_actions.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_arguments.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_deduplicate.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_jobs.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_pipe_data.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_pipes_dtypes.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_sql.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_sync.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_users.py +0 -0
- {meerschaum-2.8.4 → meerschaum-2.9.0.dev1}/tests/test_verify.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: meerschaum
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.9.0.dev1
|
4
4
|
Summary: Sync Time-Series Pipes with Meerschaum
|
5
5
|
Home-page: https://meerschaum.io
|
6
6
|
Author: Bennett Meares
|
@@ -126,6 +126,7 @@ Requires-Dist: importlib-metadata>=4.12.0; extra == "extras"
|
|
126
126
|
Provides-Extra: sql
|
127
127
|
Requires-Dist: numpy>=1.18.5; extra == "sql"
|
128
128
|
Requires-Dist: pandas[parquet]>=2.0.1; extra == "sql"
|
129
|
+
Requires-Dist: geopandas>=1.0.1; extra == "sql"
|
129
130
|
Requires-Dist: pyarrow>=16.1.0; extra == "sql"
|
130
131
|
Requires-Dist: dask[complete]>=2024.12.1; extra == "sql"
|
131
132
|
Requires-Dist: partd>=1.4.2; extra == "sql"
|
@@ -186,6 +187,7 @@ Requires-Dist: httpcore>=1.0.6; extra == "api"
|
|
186
187
|
Requires-Dist: valkey>=6.0.0; extra == "api"
|
187
188
|
Requires-Dist: numpy>=1.18.5; extra == "api"
|
188
189
|
Requires-Dist: pandas[parquet]>=2.0.1; extra == "api"
|
190
|
+
Requires-Dist: geopandas>=1.0.1; extra == "api"
|
189
191
|
Requires-Dist: pyarrow>=16.1.0; extra == "api"
|
190
192
|
Requires-Dist: dask[complete]>=2024.12.1; extra == "api"
|
191
193
|
Requires-Dist: partd>=1.4.2; extra == "api"
|
@@ -291,6 +293,7 @@ Requires-Dist: pywebview>=3.6.3; extra == "full"
|
|
291
293
|
Requires-Dist: pycparser>=2.21.0; extra == "full"
|
292
294
|
Requires-Dist: numpy>=1.18.5; extra == "full"
|
293
295
|
Requires-Dist: pandas[parquet]>=2.0.1; extra == "full"
|
296
|
+
Requires-Dist: geopandas>=1.0.1; extra == "full"
|
294
297
|
Requires-Dist: pyarrow>=16.1.0; extra == "full"
|
295
298
|
Requires-Dist: dask[complete]>=2024.12.1; extra == "full"
|
296
299
|
Requires-Dist: partd>=1.4.2; extra == "full"
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#! /usr/bin/env python3
|
2
|
+
# vim:fenc=utf-8
|
3
|
+
|
4
|
+
"""
|
5
|
+
Utility functions for the retrieval, caching, and response of chunk data.
|
6
|
+
"""
|
7
|
+
|
8
|
+
import random
|
9
|
+
from datetime import datetime, timedelta, timezone
|
10
|
+
from typing import Dict, Generator, Any, Union, Optional, List
|
11
|
+
|
12
|
+
import meerschaum as mrsm
|
13
|
+
from meerschaum.api import get_cache_connector
|
14
|
+
from meerschaum.utils.misc import generate_password
|
15
|
+
|
16
|
+
CHUNKS_TOKENS_GENERATORS: Dict[str, Dict[str, Union[Generator[Any, None, None], datetime, int]]]
|
17
|
+
DEFAULT_TTL_SECONDS = mrsm.get_config('system', 'api', 'data', 'chunks', 'ttl_seconds')
|
18
|
+
|
19
|
+
|
20
|
+
def generate_chunks_cursor_token(
|
21
|
+
pipe: mrsm.Pipe,
|
22
|
+
select_columns: Optional[List[str]] = None,
|
23
|
+
omit_columns: Optional[List[str]] = None,
|
24
|
+
begin: Union[datetime, int, None] = None,
|
25
|
+
end: Union[datetime, int, None] = None,
|
26
|
+
params: Optional[Dict[str, Any]] = None,
|
27
|
+
limit: Optional[int] = None,
|
28
|
+
order: Optional[str] = 'asc',
|
29
|
+
ttl_seconds: Optional[int] = None,
|
30
|
+
debug: bool = False,
|
31
|
+
) -> str:
|
32
|
+
"""
|
33
|
+
Store a generator in the `CHUNKS_TOKENS_GENERATORS`
|
34
|
+
"""
|
35
|
+
now = datetime.now(timezone.utc)
|
36
|
+
cache_connector = get_cache_connector()
|
37
|
+
if cache_connector is None:
|
38
|
+
pass
|
39
|
+
|
40
|
+
ttl_seconds = ttl_seconds or DEFAULT_TTL_SECONDS
|
41
|
+
chunk_bounds = pipe.get_chunk_bounds(
|
42
|
+
begin=begin,
|
43
|
+
end=end,
|
44
|
+
bounded=True,
|
45
|
+
)
|
46
|
+
|
47
|
+
while True:
|
48
|
+
chunk_token = prefix + generate_password(random.randint(6, 12))
|
49
|
+
if chunk_token in CHUNKS_TOKENS_GENERATORS:
|
50
|
+
continue
|
51
|
+
break
|
52
|
+
|
53
|
+
CHUNKS_TOKENS_GENERATORS[chunk_token] = {
|
54
|
+
'generator': chunk_generator,
|
55
|
+
'created': now,
|
56
|
+
'ttl': ttl_seconds,
|
57
|
+
'last_accessed': now,
|
58
|
+
}
|
59
|
+
|
60
|
+
return chunk_token
|
61
|
+
|
62
|
+
|
63
|
+
def deallocate_expired_generators():
|
64
|
+
"""
|
65
|
+
Periodically delete chunk tokens with an expired ttl timestamp.
|
66
|
+
"""
|
67
|
+
chunk_tokens = list(CHUNKS_TOKENS_GENERATORS)
|
@@ -7,10 +7,13 @@ Import custom callbacks created by plugins.
|
|
7
7
|
"""
|
8
8
|
|
9
9
|
import traceback
|
10
|
+
from typing import Any, Dict
|
11
|
+
|
10
12
|
from meerschaum.api.dash import dash_app
|
11
13
|
from meerschaum.plugins import _dash_plugins, _plugin_endpoints_to_pages
|
12
14
|
from meerschaum.utils.warnings import warn
|
13
|
-
from meerschaum.api.dash.callbacks.dashboard import _paths, _required_login
|
15
|
+
from meerschaum.api.dash.callbacks.dashboard import _paths, _required_login, _pages
|
16
|
+
from meerschaum.api.dash.components import pages_navbar
|
14
17
|
|
15
18
|
|
16
19
|
def init_dash_plugins():
|
@@ -34,6 +37,24 @@ def add_plugin_pages():
|
|
34
37
|
Allow users to add pages via the `@web_page` decorator.
|
35
38
|
"""
|
36
39
|
for _endpoint, _page_dict in _plugin_endpoints_to_pages.items():
|
37
|
-
|
40
|
+
page_layout = _page_dict['function']()
|
41
|
+
if not _page_dict['skip_navbar']:
|
42
|
+
if isinstance(page_layout, list):
|
43
|
+
page_layout = [pages_navbar] + page_layout
|
44
|
+
else:
|
45
|
+
page_layout = [pages_navbar, page_layout]
|
46
|
+
page_key = (
|
47
|
+
' '.join(
|
48
|
+
[
|
49
|
+
word.capitalize()
|
50
|
+
for word in (
|
51
|
+
_endpoint.replace('/dash', '').lstrip('/').rstrip('/').strip()
|
52
|
+
.replace('-', ' ').replace('_', ' ').split(' ')
|
53
|
+
)
|
54
|
+
]
|
55
|
+
)
|
56
|
+
)
|
57
|
+
_pages[page_key] = _endpoint
|
58
|
+
_paths[_endpoint] = page_layout
|
38
59
|
if _page_dict['login_required']:
|
39
60
|
_required_login.add(_endpoint)
|
@@ -103,6 +103,10 @@ _paths = {
|
|
103
103
|
'job' : pages.job.layout,
|
104
104
|
}
|
105
105
|
_required_login = {''}
|
106
|
+
_pages = {
|
107
|
+
'Web Console': '/dash/',
|
108
|
+
'Plugins': '/dash/plugins',
|
109
|
+
}
|
106
110
|
|
107
111
|
|
108
112
|
@dash_app.callback(
|
@@ -696,7 +700,6 @@ dash_app.clientside_callback(
|
|
696
700
|
dash_app.clientside_callback(
|
697
701
|
"""
|
698
702
|
function(n_clicks){
|
699
|
-
console.log('fullscreen');
|
700
703
|
if (!n_clicks) { return dash_clientside.no_update; }
|
701
704
|
iframe = document.getElementById('webterm-iframe');
|
702
705
|
if (!iframe){ return dash_clientside.no_update; }
|
@@ -707,11 +710,11 @@ dash_app.clientside_callback(
|
|
707
710
|
if (leftCol.style.display === 'none') {
|
708
711
|
leftCol.style.display = '';
|
709
712
|
rightCol.className = 'col-6';
|
710
|
-
button.innerHTML = "
|
713
|
+
button.innerHTML = "⛶";
|
711
714
|
} else {
|
712
715
|
leftCol.style.display = 'none';
|
713
716
|
rightCol.className = 'col-12';
|
714
|
-
button.innerHTML = "
|
717
|
+
button.innerHTML = "🀲";
|
715
718
|
}
|
716
719
|
|
717
720
|
return dash_clientside.no_update;
|
@@ -1078,3 +1081,38 @@ def parameters_as_yaml_or_json_click(
|
|
1078
1081
|
if as_yaml:
|
1079
1082
|
return yaml.dump(pipe.parameters)
|
1080
1083
|
return json.dumps(pipe.parameters, indent=4, separators=(',', ': '), sort_keys=True)
|
1084
|
+
|
1085
|
+
|
1086
|
+
@dash_app.callback(
|
1087
|
+
Output('pages-offcanvas', 'is_open'),
|
1088
|
+
Output('pages-offcanvas', 'children'),
|
1089
|
+
Input('logo-img', 'n_clicks'),
|
1090
|
+
State('pages-offcanvas', 'is_open'),
|
1091
|
+
)
|
1092
|
+
def toggle_pages_offcanvas(n_clicks: Optional[int], is_open: bool):
|
1093
|
+
"""
|
1094
|
+
Toggle the pages sidebar.
|
1095
|
+
"""
|
1096
|
+
pages_children = dbc.Card(
|
1097
|
+
dbc.ListGroup(
|
1098
|
+
[
|
1099
|
+
dbc.ListGroupItem(
|
1100
|
+
dbc.Button(
|
1101
|
+
html.P(
|
1102
|
+
' '.join([word.capitalize() for word in page_key.split(' ')]),
|
1103
|
+
style={'text-decoration': 'none', 'fontSize': '18px'},
|
1104
|
+
),
|
1105
|
+
style={'width': '100%', 'text-align': 'left'},
|
1106
|
+
href=page_href,
|
1107
|
+
color='dark',
|
1108
|
+
)
|
1109
|
+
)
|
1110
|
+
for page_key, page_href in _pages.items()
|
1111
|
+
],
|
1112
|
+
flush=True,
|
1113
|
+
),
|
1114
|
+
outline=True,
|
1115
|
+
)
|
1116
|
+
if n_clicks:
|
1117
|
+
return not is_open, pages_children
|
1118
|
+
return is_open, pages_children
|
@@ -92,9 +92,9 @@ search_parameters_editor = dash_ace.DashAceEditor(
|
|
92
92
|
style={'height': 100},
|
93
93
|
)
|
94
94
|
|
95
|
-
|
96
|
-
|
97
|
-
|
95
|
+
pages_offcanvas = dbc.Offcanvas(
|
96
|
+
title='',
|
97
|
+
id='pages-offcanvas',
|
98
98
|
)
|
99
99
|
|
100
100
|
download_dataframe = dcc.Download(id='download-dataframe-csv')
|
@@ -110,26 +110,33 @@ instance_select = dbc.Select(
|
|
110
110
|
class_name='dbc_dark custom-select custom-select-sm',
|
111
111
|
)
|
112
112
|
|
113
|
+
logo_row = dbc.Row(
|
114
|
+
[
|
115
|
+
dbc.Col(
|
116
|
+
html.Img(
|
117
|
+
src=endpoints['dash'] + "/assets/logo_48x48.png",
|
118
|
+
title=doc,
|
119
|
+
id="logo-img",
|
120
|
+
style={'cursor': 'pointer'},
|
121
|
+
),
|
122
|
+
),
|
123
|
+
],
|
124
|
+
align='center',
|
125
|
+
className='g-0 navbar-logo-row',
|
126
|
+
)
|
127
|
+
|
128
|
+
pages_navbar = html.Div(
|
129
|
+
[
|
130
|
+
pages_offcanvas,
|
131
|
+
dbc.Navbar(dbc.Container(logo_row), dark=True, color='dark'),
|
132
|
+
],
|
133
|
+
id='pages-navbar-div',
|
134
|
+
)
|
113
135
|
|
114
136
|
navbar = dbc.Navbar(
|
115
137
|
dbc.Container(
|
116
138
|
[
|
117
|
-
|
118
|
-
dbc.Row(
|
119
|
-
[
|
120
|
-
dbc.Col(
|
121
|
-
html.Img(
|
122
|
-
src=endpoints['dash'] + "/assets/logo_48x48.png",
|
123
|
-
title=doc,
|
124
|
-
),
|
125
|
-
),
|
126
|
-
],
|
127
|
-
align='center',
|
128
|
-
className='g-0 navbar-logo-row',
|
129
|
-
),
|
130
|
-
href=('/docs' if docs_enabled else '#'),
|
131
|
-
style={"textDecoration": "none"},
|
132
|
-
),
|
139
|
+
logo_row,
|
133
140
|
dbc.NavbarToggler(id="navbar-toggler", n_clicks=0),
|
134
141
|
dbc.Collapse(
|
135
142
|
dbc.Row(
|
@@ -142,6 +149,7 @@ navbar = dbc.Navbar(
|
|
142
149
|
style={'margin-left': '30px'},
|
143
150
|
id='sign-out-button',
|
144
151
|
),
|
152
|
+
className="ms-auto",
|
145
153
|
),
|
146
154
|
],
|
147
155
|
className="g-0 ms-auto flex-nowrap mt-3 mt-md-0",
|
@@ -37,6 +37,7 @@ from meerschaum.api.dash.components import (
|
|
37
37
|
console_div,
|
38
38
|
download_dataframe,
|
39
39
|
navbar,
|
40
|
+
pages_offcanvas,
|
40
41
|
download_logs,
|
41
42
|
refresh_jobs_interval,
|
42
43
|
)
|
@@ -47,22 +48,23 @@ from meerschaum.api.dash.keys import (
|
|
47
48
|
)
|
48
49
|
|
49
50
|
layout = html.Div(
|
50
|
-
id
|
51
|
-
children
|
51
|
+
id='main-div',
|
52
|
+
children=[
|
52
53
|
keys_lists_content,
|
53
54
|
download_dataframe,
|
54
55
|
download_logs,
|
55
56
|
refresh_jobs_interval,
|
56
57
|
navbar,
|
58
|
+
pages_offcanvas,
|
57
59
|
html.Div(
|
58
60
|
dbc.Row(
|
59
|
-
id
|
60
|
-
children
|
61
|
+
id='content-row',
|
62
|
+
children=[
|
61
63
|
dbc.Col(
|
62
|
-
children
|
64
|
+
children=[
|
63
65
|
dbc.Tabs(
|
64
|
-
id
|
65
|
-
children
|
66
|
+
id='pipes-filter-tabs',
|
67
|
+
children=[
|
66
68
|
dbc.Tab(
|
67
69
|
dropdown_tab_content,
|
68
70
|
label='Filters',
|
@@ -107,9 +109,9 @@ layout = html.Div(
|
|
107
109
|
id='content-col-right',
|
108
110
|
),
|
109
111
|
],
|
110
|
-
style
|
112
|
+
style={'max-width': '100%', 'padding': '15px'},
|
111
113
|
), ### end of Row
|
112
|
-
className
|
114
|
+
className='container-fluid',
|
113
115
|
), ### end of Div
|
114
116
|
html.P('', id='line-buffer', style={'display': 'none'}),
|
115
117
|
],
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#! /usr/bin/env python3
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# vim:fenc=utf-8
|
4
|
+
|
5
|
+
"""
|
6
|
+
View the available plugins hosted by this API instance.
|
7
|
+
"""
|
8
|
+
|
9
|
+
from __future__ import annotations
|
10
|
+
from meerschaum.api import get_api_connector, endpoints, CHECK_UPDATE
|
11
|
+
from meerschaum.utils.packages import import_html, import_dcc
|
12
|
+
html, dcc = import_html(check_update=CHECK_UPDATE), import_dcc(check_update=CHECK_UPDATE)
|
13
|
+
import dash_bootstrap_components as dbc
|
14
|
+
from meerschaum.core import Plugin
|
15
|
+
from meerschaum.utils.typing import Optional
|
16
|
+
from meerschaum.api.dash.components import pages_navbar
|
17
|
+
|
18
|
+
search_box = dbc.Input(
|
19
|
+
id = "search-plugins-input",
|
20
|
+
placeholder = "Search for plugins...",
|
21
|
+
type = "text",
|
22
|
+
)
|
23
|
+
|
24
|
+
layout = [
|
25
|
+
pages_navbar,
|
26
|
+
dbc.Container([
|
27
|
+
html.Div([
|
28
|
+
html.Br(),
|
29
|
+
html.Div(
|
30
|
+
dbc.Container([
|
31
|
+
html.H3('Plugins'),
|
32
|
+
html.P([
|
33
|
+
(
|
34
|
+
'Plugins extend the functionality of Meerschaum.'
|
35
|
+
' To find out more, check out the '
|
36
|
+
),
|
37
|
+
html.A(
|
38
|
+
'plugins documentation',
|
39
|
+
href='https://meerschaum.io/reference/plugins/',
|
40
|
+
rel="noreferrer noopener",
|
41
|
+
target="_blank",
|
42
|
+
),
|
43
|
+
'.',
|
44
|
+
]),
|
45
|
+
]),
|
46
|
+
className='page-header',
|
47
|
+
style={'background-color': 'var(--dark)', 'padding': '1em'},
|
48
|
+
),
|
49
|
+
html.Br(),
|
50
|
+
search_box,
|
51
|
+
html.Br(),
|
52
|
+
html.Div([], id='plugins-cards-div'),
|
53
|
+
])
|
54
|
+
])
|
55
|
+
]
|
@@ -53,19 +53,22 @@ def get_webterm(state: WebState) -> Tuple[Any, Any]:
|
|
53
53
|
html.Div(
|
54
54
|
[
|
55
55
|
dbc.Button(
|
56
|
-
|
56
|
+
"⟳",
|
57
57
|
color='black',
|
58
|
+
size='sm',
|
58
59
|
id='webterm-refresh-button',
|
59
60
|
),
|
60
61
|
dbc.Button(
|
61
|
-
'
|
62
|
+
'⛶',
|
62
63
|
color='black',
|
64
|
+
size='sm',
|
63
65
|
id='webterm-fullscreen-button',
|
64
66
|
),
|
65
67
|
] + [
|
66
68
|
dbc.Button(
|
67
|
-
'
|
69
|
+
html.B('+'),
|
68
70
|
color='black',
|
71
|
+
size='sm',
|
69
72
|
id='webterm-new-tab-button',
|
70
73
|
),
|
71
74
|
] if TMUX_IS_ENABLED else [],
|