meerschaum 2.6.1__tar.gz → 2.6.3__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.6.1/meerschaum.egg-info → meerschaum-2.6.3}/PKG-INFO +1 -1
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_version.py +1 -1
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_pipes.py +5 -4
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/sql.py +1 -1
- {meerschaum-2.6.1 → meerschaum-2.6.3/meerschaum.egg-info}/PKG-INFO +1 -1
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_pipes_dtypes.py +3 -4
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_sync.py +97 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/LICENSE +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/NOTICE +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/README.md +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/__main__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/arguments/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/arguments/_parser.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/docs/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/docs/index.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/entry.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/app/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/app/_windows.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/app/actions.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/gui/app/pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/Shell.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/resources/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/shell/updates.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/term/TermPageHandler.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/term/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/_internal/term/tools.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/api.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/attach.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/bootstrap.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/clear.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/copy.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/deduplicate.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/delete.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/drop.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/edit.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/install.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/login.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/os.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/pause.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/python.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/register.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/reload.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/restart.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/setup.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/sh.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/show.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/sql.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/stack.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/start.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/stop.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/sync.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/tag.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/uninstall.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/upgrade.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/actions/verify.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/_chain.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/_events.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/_oauth2.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/_websockets.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/ansi_up.js +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/favicon.ico +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/custom.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/dashboard.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/jobs.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/login.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/plugins.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/callbacks/register.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/components.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/connectors.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/graphs.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/jobs.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/keys.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/dashboard.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/error.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/job.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/login.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/plugins.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pages/register.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/plugins.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/sessions.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/sync.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/users.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/websockets.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/dash/webterm.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/_interfaces.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/_locations.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/_metrics.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/models/_pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/dash.css +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/styles.css +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/css/xterm.css +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/ico/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/ico/logo.ico +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/action_button.js +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/main.js +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/terminado.js +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/js/xterm.js +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/static/png/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/index.html +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/old_index.html +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/secret.html +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/resources/templates/termpage.html +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_actions.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_connectors.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_index.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_jobs.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_login.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_misc.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_plugins.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_users.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_version.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/routes/_webterm.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/api/tables/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_dash.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_default.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_edit.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_environment.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_formatting.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_jobs.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_patch.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_paths.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_preprocess.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_read_config.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_shell.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/_sync.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/paths.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/resources/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/grafana/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/resources/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/static/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/_Connector.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_APIConnector.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_actions.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_fetch.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_jobs.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_login.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_misc.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_plugins.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_request.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_uri.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/api/_users.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/parse.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/plugin/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/poll.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_SQLConnector.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_cli.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_create_engine.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_fetch.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_instance.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_plugins.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_sql.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_uri.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/_users.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/tables/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/tables/types.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/sql/tools.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_ValkeyConnector.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_fetch.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_plugins.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/connectors/valkey/_users.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_attributes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_bootstrap.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_clear.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_copy.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_data.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_deduplicate.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_delete.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_drop.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_dtypes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_edit.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_fetch.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_register.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_show.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_sync.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Pipe/_verify.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/Plugin/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/User/_User.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/User/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/core/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/jobs/_Executor.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/jobs/_Job.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/jobs/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/jobs/systemd.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/plugins/_Plugin.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/plugins/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/plugins/bootstrap.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/_get_pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/Daemon.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/RotatingFile.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/StdinFile.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/daemon/_names.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/dataframe.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/debug.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/dtypes/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/dtypes/sql.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/_jobs.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/_pipes.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/_pprint.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/formatting/_shell.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/interactive.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/misc.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/networking.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/packages/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/packages/_packages.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/packages/lazy_loader.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/pool.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/process.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/prompt.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/schedule.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/threading.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/typing.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/venv/_Venv.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/venv/__init__.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/warnings.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/utils/yaml.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/SOURCES.txt +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/dependency_links.txt +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/entry_points.txt +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/requires.txt +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/top_level.txt +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum.egg-info/zip-safe +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/setup.cfg +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/setup.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_actions.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_arguments.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_deduplicate.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_jobs.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_pipe_data.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_sql.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_users.py +0 -0
- {meerschaum-2.6.1 → meerschaum-2.6.3}/tests/test_verify.py +0 -0
@@ -1980,19 +1980,20 @@ def sync_pipe_inplace(
|
|
1980
1980
|
"SELECT\n"
|
1981
1981
|
f" MIN({dt_col_name}) AS {sql_item_name('min_dt', self.flavor)},\n"
|
1982
1982
|
f" MAX({dt_col_name}) AS {sql_item_name('max_dt', self.flavor)}\n"
|
1983
|
-
f"FROM {temp_table_names['new']}\n"
|
1983
|
+
f"FROM {temp_table_names['new' if not upsert else 'update']}\n"
|
1984
1984
|
f"WHERE {dt_col_name} IS NOT NULL"
|
1985
1985
|
],
|
1986
1986
|
with_results=True,
|
1987
1987
|
debug=debug,
|
1988
|
-
)
|
1988
|
+
) if not upsert else ((True, "Success"), None)
|
1989
1989
|
if not new_dt_bounds_success:
|
1990
1990
|
return (
|
1991
1991
|
new_dt_bounds_success,
|
1992
1992
|
f"Could not determine in-place datetime bounds:\n{new_dt_bounds_msg}"
|
1993
1993
|
)
|
1994
1994
|
|
1995
|
-
|
1995
|
+
if not upsert:
|
1996
|
+
begin, end = new_dt_bounds_results[0].fetchone()
|
1996
1997
|
|
1997
1998
|
backtrack_def = self.get_pipe_data_query(
|
1998
1999
|
pipe,
|
@@ -2010,7 +2011,7 @@ def sync_pipe_inplace(
|
|
2010
2011
|
self.flavor,
|
2011
2012
|
schema=internal_schema,
|
2012
2013
|
)[0]
|
2013
|
-
(create_backtrack_success, create_backtrack_msg),
|
2014
|
+
(create_backtrack_success, create_backtrack_msg), create_backtrack_results = session_execute(
|
2014
2015
|
session,
|
2015
2016
|
create_backtrack_query,
|
2016
2017
|
with_results=True,
|
@@ -112,15 +112,14 @@ def test_infer_json_dtype(flavor: str):
|
|
112
112
|
conn = conns[flavor]
|
113
113
|
pipe = Pipe('foo', 'bar', session_id, instance=conn)
|
114
114
|
_ = pipe.delete(debug=debug)
|
115
|
-
pipe = Pipe('foo', 'bar', session_id, instance=conn)
|
115
|
+
pipe = Pipe('foo', 'bar', session_id, instance=conn, columns=['id'])
|
116
116
|
success, msg = pipe.sync([
|
117
|
-
{'a': ['b', 'c']},
|
118
|
-
{'a': {'b': 1}},
|
117
|
+
{'id': 1, 'a': ['b', 'c']},
|
118
|
+
{'id': 2, 'a': {'b': 1}},
|
119
119
|
])
|
120
120
|
assert success, msg
|
121
121
|
pprint(pipe.get_columns_types())
|
122
122
|
df = pipe.get_data(debug=debug)
|
123
|
-
print(df)
|
124
123
|
assert isinstance(df['a'][0], list)
|
125
124
|
assert isinstance(df['a'][1], dict)
|
126
125
|
|
@@ -536,6 +536,103 @@ def test_sync_inplace(flavor: str):
|
|
536
536
|
assert df['a'][0] == 3
|
537
537
|
|
538
538
|
|
539
|
+
@pytest.mark.parametrize("flavor", get_flavors())
|
540
|
+
def test_sync_inplace_upsert(flavor: str):
|
541
|
+
"""
|
542
|
+
Verify that in-place syncing works as expected.
|
543
|
+
"""
|
544
|
+
from meerschaum.utils.sql import sql_item_name
|
545
|
+
conn = conns[flavor]
|
546
|
+
if conn.type != 'sql':
|
547
|
+
return
|
548
|
+
source_pipe = Pipe('test', 'inplace', 'upsert', instance=conn)
|
549
|
+
source_pipe.delete()
|
550
|
+
source_pipe = Pipe(
|
551
|
+
'test', 'inplace', 'upsert',
|
552
|
+
instance=conn,
|
553
|
+
columns={'datetime': 'dt', 'id': 'id'},
|
554
|
+
indices={'all': ['dt', 'id']},
|
555
|
+
upsert=True,
|
556
|
+
)
|
557
|
+
dest_pipe = Pipe(str(conn), 'inplace', 'upsert', instance=conn)
|
558
|
+
dest_pipe.delete()
|
559
|
+
query = f"""
|
560
|
+
WITH {sql_item_name('subquery', flavor)} AS (
|
561
|
+
SELECT *
|
562
|
+
FROM {sql_item_name(source_pipe.target, flavor)}
|
563
|
+
)
|
564
|
+
SELECT *
|
565
|
+
FROM {sql_item_name('subquery', flavor)}
|
566
|
+
""" if flavor not in ('mysql',) else f"""
|
567
|
+
SELECT *
|
568
|
+
FROM {sql_item_name(source_pipe.target, flavor)}
|
569
|
+
"""
|
570
|
+
dest_pipe = Pipe(
|
571
|
+
str(conn), 'inplace', 'upsert',
|
572
|
+
instance=conn,
|
573
|
+
columns={'datetime': 'dt', 'id': 'id'},
|
574
|
+
dtypes={'a': 'int', 'id': 'uuid'},
|
575
|
+
upsert=True,
|
576
|
+
parameters={
|
577
|
+
"fetch": {
|
578
|
+
"definition": query,
|
579
|
+
"backtrack_minutes": 1440,
|
580
|
+
}
|
581
|
+
},
|
582
|
+
)
|
583
|
+
|
584
|
+
docs = [
|
585
|
+
{'dt': '2023-01-01 00:00:00', 'id': UUID('9f680a72-b5f7-4336-8f7c-30927ec21cb1')},
|
586
|
+
{'dt': '2023-01-01 00:01:00', 'id': UUID('335b0322-4b54-40aa-8019-07666cbefa52')},
|
587
|
+
{'dt': '2023-01-01 00:02:00', 'id': UUID('d7d42913-2dfe-47d6-b0e0-7f71e13e814e')},
|
588
|
+
{'dt': '2023-01-01 00:03:00', 'id': UUID('7e194a2c-26b4-4632-af02-e0a8b2c6ce1e')},
|
589
|
+
{'dt': '2023-01-01 00:04:00', 'id': UUID('31e5fd08-fb81-47f4-8a1c-0c9dcf08ac5e')},
|
590
|
+
]
|
591
|
+
success, msg = source_pipe.sync(docs)
|
592
|
+
assert success, msg
|
593
|
+
|
594
|
+
success, msg = dest_pipe.sync(debug=debug)
|
595
|
+
assert success, msg
|
596
|
+
assert dest_pipe.get_rowcount(debug=debug) == len(docs)
|
597
|
+
|
598
|
+
success, msg = dest_pipe.sync(debug=debug)
|
599
|
+
assert success, msg
|
600
|
+
assert dest_pipe.get_rowcount(debug=debug) == len(docs)
|
601
|
+
|
602
|
+
new_docs = [
|
603
|
+
{'dt': '2023-01-02 00:00:00', 'id': UUID('afb0b31b-15dc-485e-ac6f-d8622b6d03d4')},
|
604
|
+
{'dt': '2023-01-02 00:01:00', 'id': UUID('8b7bf428-d0ed-40fa-951b-bb115a03eac5')},
|
605
|
+
{'dt': '2023-01-02 00:02:00', 'id': UUID('36aed9b4-4c7a-4566-a321-d1774ef1015a')},
|
606
|
+
{'dt': '2023-01-02 00:03:00', 'id': UUID('7a4ef6cc-37d8-4899-9ddb-07b4998d0b53')},
|
607
|
+
{'dt': '2023-01-02 00:04:00', 'id': UUID('59244211-fdb8-46f1-b14b-8631146758c0')},
|
608
|
+
]
|
609
|
+
success, msg = source_pipe.sync(new_docs)
|
610
|
+
assert success, msg
|
611
|
+
|
612
|
+
success, msg = dest_pipe.sync(debug=debug)
|
613
|
+
assert success, msg
|
614
|
+
assert dest_pipe.get_rowcount(debug=debug) == len(docs) + len(new_docs)
|
615
|
+
|
616
|
+
update_docs = [
|
617
|
+
{'dt': '2023-01-01 00:00:00', 'id': UUID('9f680a72-b5f7-4336-8f7c-30927ec21cb1'), 'a': 1},
|
618
|
+
{'dt': '2023-01-01 00:01:00', 'id': UUID('335b0322-4b54-40aa-8019-07666cbefa52'), 'a': 2},
|
619
|
+
{'dt': '2023-01-01 00:02:00', 'id': UUID('d7d42913-2dfe-47d6-b0e0-7f71e13e814e'), 'a': 3},
|
620
|
+
{'dt': '2023-01-01 00:03:00', 'id': UUID('7e194a2c-26b4-4632-af02-e0a8b2c6ce1e'), 'a': 4},
|
621
|
+
{'dt': '2023-01-01 00:04:00', 'id': UUID('31e5fd08-fb81-47f4-8a1c-0c9dcf08ac5e'), 'a': 5},
|
622
|
+
]
|
623
|
+
success, msg = source_pipe.sync(update_docs)
|
624
|
+
assert success, msg
|
625
|
+
assert source_pipe.get_rowcount(debug=debug) == len(docs) + len(new_docs)
|
626
|
+
|
627
|
+
success, msg = dest_pipe.verify(debug=debug)
|
628
|
+
assert success, msg
|
629
|
+
assert dest_pipe.get_rowcount(debug=debug) == len(docs) + len(new_docs)
|
630
|
+
|
631
|
+
df = dest_pipe.get_data(params={'id': 'd7d42913-2dfe-47d6-b0e0-7f71e13e814e'})
|
632
|
+
assert len(df) == 1
|
633
|
+
assert df['a'][0] == 3
|
634
|
+
|
635
|
+
|
539
636
|
@pytest.mark.parametrize("flavor", get_flavors())
|
540
637
|
def test_nested_chunks(flavor: str):
|
541
638
|
"""
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{meerschaum-2.6.1 → meerschaum-2.6.3}/meerschaum/config/stack/mosquitto/resources/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|