meerschaum 2.6.15__tar.gz → 2.6.17__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {meerschaum-2.6.15/meerschaum.egg-info → meerschaum-2.6.17}/PKG-INFO +2 -2
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/arguments/_parse_arguments.py +1 -1
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/edit.py +22 -2
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/sync.py +2 -3
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_version.py +1 -1
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_create_engine.py +3 -3
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_pipes.py +21 -13
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_attributes.py +8 -5
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/jobs/_Job.py +2 -1
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/daemon/Daemon.py +2 -2
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/packages/_packages.py +1 -1
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/schedule.py +8 -3
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/sql.py +6 -25
- {meerschaum-2.6.15 → meerschaum-2.6.17/meerschaum.egg-info}/PKG-INFO +2 -2
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum.egg-info/requires.txt +1 -1
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_sync.py +4 -2
- {meerschaum-2.6.15 → meerschaum-2.6.17}/LICENSE +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/NOTICE +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/README.md +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/__main__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/arguments/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/arguments/_parser.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/docs/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/docs/index.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/entry.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/gui/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/gui/app/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/gui/app/_windows.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/gui/app/actions.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/gui/app/pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/shell/Shell.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/shell/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/shell/resources/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/shell/updates.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/term/TermPageHandler.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/term/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/_internal/term/tools.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/api.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/attach.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/bootstrap.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/clear.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/copy.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/deduplicate.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/delete.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/drop.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/install.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/login.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/os.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/pause.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/python.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/register.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/reload.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/restart.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/setup.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/sh.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/show.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/sql.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/stack.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/start.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/stop.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/tag.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/uninstall.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/upgrade.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/actions/verify.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/_chain.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/_events.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/_oauth2.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/_websockets.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/assets/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/assets/ansi_up.js +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/assets/favicon.ico +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/callbacks/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/callbacks/custom.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/callbacks/dashboard.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/callbacks/jobs.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/callbacks/login.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/callbacks/pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/callbacks/plugins.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/callbacks/register.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/components.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/connectors.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/graphs.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/jobs.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/keys.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/pages/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/pages/dashboard.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/pages/error.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/pages/job.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/pages/login.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/pages/pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/pages/plugins.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/pages/register.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/plugins.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/sessions.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/sync.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/users.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/websockets.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/dash/webterm.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/models/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/models/_interfaces.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/models/_locations.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/models/_metrics.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/models/_pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/css/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/css/dash.css +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/css/styles.css +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/css/xterm.css +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/ico/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/ico/logo.ico +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/js/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/js/action_button.js +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/js/main.js +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/js/terminado.js +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/js/xterm.js +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/static/png/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/templates/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/templates/index.html +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/templates/old_index.html +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/templates/secret.html +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/resources/templates/termpage.html +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_actions.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_connectors.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_index.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_jobs.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_login.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_misc.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_plugins.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_users.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_version.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/routes/_webterm.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/api/tables/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_dash.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_default.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_edit.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_environment.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_formatting.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_jobs.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_patch.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_paths.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_preprocess.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_read_config.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_shell.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/_sync.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/paths.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/resources/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/stack/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/stack/grafana/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/stack/resources/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/config/static/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/_Connector.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_APIConnector.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_actions.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_fetch.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_jobs.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_login.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_misc.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_plugins.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_request.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_uri.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/api/_users.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/parse.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/plugin/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/poll.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_SQLConnector.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_cli.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_fetch.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_instance.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_plugins.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_sql.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_uri.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/_users.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/tables/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/tables/types.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/sql/tools.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/valkey/_ValkeyConnector.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/valkey/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/valkey/_fetch.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/valkey/_pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/valkey/_plugins.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/connectors/valkey/_users.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_bootstrap.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_clear.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_copy.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_data.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_deduplicate.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_delete.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_drop.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_dtypes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_edit.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_fetch.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_register.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_show.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_sync.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Pipe/_verify.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/Plugin/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/User/_User.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/User/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/core/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/jobs/_Executor.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/jobs/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/jobs/systemd.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/plugins/_Plugin.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/plugins/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/plugins/bootstrap.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/_get_pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/daemon/RotatingFile.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/daemon/StdinFile.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/daemon/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/daemon/_names.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/dataframe.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/debug.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/dtypes/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/dtypes/sql.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/formatting/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/formatting/_jobs.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/formatting/_pipes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/formatting/_pprint.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/formatting/_shell.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/interactive.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/misc.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/networking.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/packages/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/packages/lazy_loader.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/pool.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/process.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/prompt.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/threading.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/typing.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/venv/_Venv.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/venv/__init__.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/warnings.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum/utils/yaml.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum.egg-info/SOURCES.txt +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum.egg-info/dependency_links.txt +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum.egg-info/entry_points.txt +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum.egg-info/top_level.txt +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/meerschaum.egg-info/zip-safe +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/setup.cfg +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/setup.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_actions.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_arguments.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_deduplicate.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_jobs.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_pipe_data.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_pipes_dtypes.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_sql.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_users.py +0 -0
- {meerschaum-2.6.15 → meerschaum-2.6.17}/tests/test_verify.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: meerschaum
|
3
|
-
Version: 2.6.
|
3
|
+
Version: 2.6.17
|
4
4
|
Summary: Sync Time-Series Pipes with Meerschaum
|
5
5
|
Home-page: https://meerschaum.io
|
6
6
|
Author: Bennett Meares
|
@@ -80,7 +80,7 @@ Requires-Dist: duckdb>=1.0.0; extra == "drivers"
|
|
80
80
|
Requires-Dist: duckdb-engine>=0.13.0; extra == "drivers"
|
81
81
|
Provides-Extra: drivers-extras
|
82
82
|
Requires-Dist: pyodbc>=4.0.30; extra == "drivers-extras"
|
83
|
-
Requires-Dist:
|
83
|
+
Requires-Dist: oracledb>=2.5.0; extra == "drivers-extras"
|
84
84
|
Provides-Extra: cli
|
85
85
|
Requires-Dist: pgcli>=3.1.0; extra == "cli"
|
86
86
|
Requires-Dist: mycli>=1.23.2; extra == "cli"
|
@@ -397,6 +397,7 @@ def _edit_jobs(
|
|
397
397
|
from meerschaum._internal.arguments import (
|
398
398
|
split_pipeline_sysargs,
|
399
399
|
split_chained_sysargs,
|
400
|
+
parse_arguments,
|
400
401
|
)
|
401
402
|
from meerschaum.utils.formatting import make_header, print_options
|
402
403
|
from meerschaum.utils.warnings import info
|
@@ -410,7 +411,26 @@ def _edit_jobs(
|
|
410
411
|
|
411
412
|
num_edited = 0
|
412
413
|
for name, job in jobs.items():
|
413
|
-
|
414
|
+
try:
|
415
|
+
sub_args_line = None
|
416
|
+
pipeline_args_line = None
|
417
|
+
if job.sysargs[:2] == ['start', 'pipeline']:
|
418
|
+
job_args = parse_arguments(job.sysargs)
|
419
|
+
mrsm.pprint(job_args)
|
420
|
+
sub_args_line = job_args['params']['sub_args_line']
|
421
|
+
params_index = job.sysargs[2:].index('-P')
|
422
|
+
indices_to_skip = (params_index, params_index + 1)
|
423
|
+
pipeline_args_line = shlex.join(
|
424
|
+
[a for i, a in enumerate(job.sysargs[2:]) if i not in indices_to_skip]
|
425
|
+
)
|
426
|
+
except (ValueError, IndexError):
|
427
|
+
sub_args_line = None
|
428
|
+
|
429
|
+
sysargs_str = (
|
430
|
+
f"{sub_args_line} : {pipeline_args_line}"
|
431
|
+
if sub_args_line is not None and pipeline_args_line is not None
|
432
|
+
else shlex.join(job.sysargs)
|
433
|
+
)
|
414
434
|
clear_screen(debug=debug)
|
415
435
|
info(
|
416
436
|
f"Editing arguments for job '{name}'.\n"
|
@@ -422,7 +442,7 @@ def _edit_jobs(
|
|
422
442
|
try:
|
423
443
|
new_sysargs_str = prompt(
|
424
444
|
"",
|
425
|
-
default_editable=
|
445
|
+
default_editable=job.label,
|
426
446
|
multiline=True,
|
427
447
|
icon=False,
|
428
448
|
completer=ShellCompleter(),
|
@@ -282,9 +282,8 @@ def _sync_pipes(
|
|
282
282
|
from meerschaum.utils.formatting import print_pipes_results
|
283
283
|
from meerschaum.config.static import STATIC_CONFIG
|
284
284
|
|
285
|
-
### NOTE: Removed MRSM_NONINTERACTIVE check.
|
286
285
|
noninteractive_val = os.environ.get(STATIC_CONFIG['environment']['noninteractive'], None)
|
287
|
-
|
286
|
+
noninteractive = str(noninteractive_val).lower() in ('1', 'true', 'yes')
|
288
287
|
|
289
288
|
run = True
|
290
289
|
msg = ""
|
@@ -292,7 +291,7 @@ def _sync_pipes(
|
|
292
291
|
cooldown = 2 * (min_seconds + 1)
|
293
292
|
success_pipes, failure_pipes = [], []
|
294
293
|
while run:
|
295
|
-
_progress = progress() if shell else None
|
294
|
+
_progress = progress() if shell and not noninteractive else None
|
296
295
|
cm = _progress if _progress is not None else contextlib.nullcontext()
|
297
296
|
|
298
297
|
lap_begin = time.perf_counter()
|
@@ -107,7 +107,7 @@ flavor_configs = {
|
|
107
107
|
},
|
108
108
|
},
|
109
109
|
'oracle': {
|
110
|
-
'engine': 'oracle+
|
110
|
+
'engine': 'oracle+oracledb',
|
111
111
|
'create_engine': default_create_engine_args,
|
112
112
|
'omit_create_engine': {'method',},
|
113
113
|
'to_sql': {
|
@@ -164,7 +164,7 @@ install_flavor_drivers = {
|
|
164
164
|
'citus': ['psycopg'],
|
165
165
|
'cockroachdb': ['psycopg', 'sqlalchemy_cockroachdb', 'sqlalchemy_cockroachdb.psycopg'],
|
166
166
|
'mssql': ['pyodbc'],
|
167
|
-
'oracle': ['
|
167
|
+
'oracle': ['oracledb'],
|
168
168
|
}
|
169
169
|
require_patching_flavors = {'cockroachdb': [('sqlalchemy-cockroachdb', 'sqlalchemy_cockroachdb')]}
|
170
170
|
|
@@ -239,7 +239,7 @@ def create_engine(
|
|
239
239
|
self._sys_config['create_engine'] = {}
|
240
240
|
if 'connect_args' not in self._sys_config['create_engine']:
|
241
241
|
self._sys_config['create_engine']['connect_args'] = {}
|
242
|
-
self._sys_config['create_engine']['connect_args'].update({"check_same_thread"
|
242
|
+
self._sys_config['create_engine']['connect_args'].update({"check_same_thread": False})
|
243
243
|
else:
|
244
244
|
engine_str = (
|
245
245
|
_engine + "://" + (_username if _username is not None else '') +
|
@@ -1589,17 +1589,23 @@ def sync_pipe(
|
|
1589
1589
|
if not edit_success:
|
1590
1590
|
return edit_success, edit_msg
|
1591
1591
|
|
1592
|
-
|
1592
|
+
def _check_pk(_df_to_clear):
|
1593
|
+
if _df_to_clear is None:
|
1594
|
+
return
|
1595
|
+
if primary_key not in _df_to_clear.columns:
|
1596
|
+
return
|
1597
|
+
if not _df_to_clear[primary_key].notnull().any():
|
1598
|
+
del _df_to_clear[primary_key]
|
1599
|
+
|
1600
|
+
autoincrement_needs_reset = bool(
|
1601
|
+
autoincrement
|
1602
|
+
and primary_key
|
1603
|
+
and primary_key in unseen_df.columns
|
1604
|
+
and unseen_df[primary_key].notnull().any()
|
1605
|
+
)
|
1593
1606
|
if autoincrement and primary_key:
|
1594
|
-
|
1595
|
-
|
1596
|
-
del unseen_df[primary_key]
|
1597
|
-
if update_df is not None and primary_key in update_df.columns:
|
1598
|
-
del update_df[primary_key]
|
1599
|
-
if delta_df is not None and primary_key in delta_df.columns:
|
1600
|
-
del delta_df[primary_key]
|
1601
|
-
elif unseen_df[primary_key].notnull().any():
|
1602
|
-
autoincrement_needs_reset = True
|
1607
|
+
for _df_to_clear in (unseen_df, update_df, delta_df):
|
1608
|
+
_check_pk(_df_to_clear)
|
1603
1609
|
|
1604
1610
|
if is_new:
|
1605
1611
|
create_success, create_msg = self.create_pipe_table_from_df(
|
@@ -1612,6 +1618,7 @@ def sync_pipe(
|
|
1612
1618
|
|
1613
1619
|
do_identity_insert = bool(
|
1614
1620
|
self.flavor in ('mssql',)
|
1621
|
+
and primary_key
|
1615
1622
|
and primary_key in unseen_df.columns
|
1616
1623
|
and autoincrement
|
1617
1624
|
)
|
@@ -2591,7 +2598,7 @@ def get_pipe_rowcount(
|
|
2591
2598
|
result = self.value(query, debug=debug, silent=True)
|
2592
2599
|
try:
|
2593
2600
|
return int(result)
|
2594
|
-
except Exception
|
2601
|
+
except Exception:
|
2595
2602
|
return None
|
2596
2603
|
|
2597
2604
|
|
@@ -2616,10 +2623,11 @@ def drop_pipe(
|
|
2616
2623
|
from meerschaum.utils.sql import table_exists, sql_item_name, DROP_IF_EXISTS_FLAVORS
|
2617
2624
|
success = True
|
2618
2625
|
target = pipe.target
|
2626
|
+
schema = self.get_pipe_schema(pipe)
|
2619
2627
|
target_name = (
|
2620
|
-
sql_item_name(target, self.flavor,
|
2628
|
+
sql_item_name(target, self.flavor, schema)
|
2621
2629
|
)
|
2622
|
-
if table_exists(target, self, debug=debug):
|
2630
|
+
if table_exists(target, self, schema=schema, debug=debug):
|
2623
2631
|
if_exists_str = "IF EXISTS" if self.flavor in DROP_IF_EXISTS_FLAVORS else ""
|
2624
2632
|
success = self.exec(
|
2625
2633
|
f"DROP TABLE {if_exists_str} {target_name}", silent=True, debug=debug
|
@@ -627,11 +627,14 @@ def target(self) -> str:
|
|
627
627
|
from meerschaum.utils.sql import truncate_item_name
|
628
628
|
truncated_target = truncate_item_name(_target, self.instance_connector.flavor)
|
629
629
|
default_targets.add(truncated_target)
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
630
|
+
warned_target = self.__dict__.get('_warned_target', False)
|
631
|
+
if truncated_target != _target and not warned_target:
|
632
|
+
if not warned_target:
|
633
|
+
warn(
|
634
|
+
f"The target '{_target}' is too long for '{self.instance_connector.flavor}', "
|
635
|
+
+ f"will use {truncated_target} instead."
|
636
|
+
)
|
637
|
+
self.__dict__['_warned_target'] = True
|
635
638
|
_target = truncated_target
|
636
639
|
|
637
640
|
if _target in default_targets:
|
@@ -873,7 +873,7 @@ class Job:
|
|
873
873
|
"""
|
874
874
|
from meerschaum._internal.arguments import compress_pipeline_sysargs
|
875
875
|
sysargs = compress_pipeline_sysargs(self.sysargs)
|
876
|
-
return shlex.join(sysargs).replace(' + ', '\n+ ')
|
876
|
+
return shlex.join(sysargs).replace(' + ', '\n+ ').replace(' : ', '\n: ').lstrip().rstrip()
|
877
877
|
|
878
878
|
@property
|
879
879
|
def _externally_managed_file(self) -> pathlib.Path:
|
@@ -915,6 +915,7 @@ class Job:
|
|
915
915
|
'PYTHONUNBUFFERED': '1',
|
916
916
|
'LINES': str(get_config('jobs', 'terminal', 'lines')),
|
917
917
|
'COLUMNS': str(get_config('jobs', 'terminal', 'columns')),
|
918
|
+
STATIC_CONFIG['environment']['noninteractive']: 'true',
|
918
919
|
}
|
919
920
|
self._env = {**default_env, **_env}
|
920
921
|
return self._env
|
@@ -432,7 +432,7 @@ class Daemon:
|
|
432
432
|
+ "allow_dirty_run=True)"
|
433
433
|
)
|
434
434
|
env = dict(os.environ)
|
435
|
-
env['
|
435
|
+
env[STATIC_CONFIG['environment']['noninteractive']] = 'true'
|
436
436
|
_launch_success_bool = venv_exec(_launch_daemon_code, debug=debug, venv=None, env=env)
|
437
437
|
msg = (
|
438
438
|
"Success"
|
@@ -1000,7 +1000,7 @@ class Daemon:
|
|
1000
1000
|
try:
|
1001
1001
|
with open(self.properties_path, 'r', encoding='utf-8') as file:
|
1002
1002
|
properties = json.load(file)
|
1003
|
-
except Exception
|
1003
|
+
except Exception:
|
1004
1004
|
properties = {}
|
1005
1005
|
|
1006
1006
|
return properties
|
@@ -132,7 +132,7 @@ def schedule_function(
|
|
132
132
|
|
133
133
|
try:
|
134
134
|
loop.run_until_complete(run_scheduler())
|
135
|
-
except (KeyboardInterrupt, SystemExit)
|
135
|
+
except (KeyboardInterrupt, SystemExit):
|
136
136
|
loop.run_until_complete(_stop_scheduler())
|
137
137
|
|
138
138
|
return True, "Success"
|
@@ -159,13 +159,13 @@ def parse_schedule(schedule: str, now: Optional[datetime] = None):
|
|
159
159
|
)
|
160
160
|
|
161
161
|
starting_ts = parse_start_time(schedule, now=now)
|
162
|
-
schedule = schedule.split(STARTING_KEYWORD)[0].strip()
|
162
|
+
schedule = schedule.split(STARTING_KEYWORD, maxsplit=1)[0].strip()
|
163
163
|
for alias_keyword, true_keyword in SCHEDULE_ALIASES.items():
|
164
164
|
schedule = schedule.replace(alias_keyword, true_keyword)
|
165
165
|
|
166
166
|
### TODO Allow for combining `and` + `or` logic.
|
167
167
|
if '&' in schedule and '|' in schedule:
|
168
|
-
raise ValueError(
|
168
|
+
raise ValueError("Cannot accept both 'and' + 'or' logic in the schedule frequency.")
|
169
169
|
|
170
170
|
join_str = '|' if '|' in schedule else '&'
|
171
171
|
join_trigger = (
|
@@ -300,6 +300,11 @@ def parse_start_time(schedule: str, now: Optional[datetime] = None) -> datetime:
|
|
300
300
|
try:
|
301
301
|
if starting_str == 'now':
|
302
302
|
starting_ts = now
|
303
|
+
elif starting_str.startswith('in '):
|
304
|
+
delta_vals = starting_str.replace('in ', '').split(' ', maxsplit=1)
|
305
|
+
delta_unit = delta_vals[-1].rstrip('s') + 's'
|
306
|
+
delta_num = float(delta_vals[0])
|
307
|
+
starting_ts = now + timedelta(**{delta_unit: delta_num})
|
303
308
|
elif 'tomorrow' in starting_str or 'today' in starting_str:
|
304
309
|
today = round_time(now, timedelta(days=1))
|
305
310
|
tomorrow = today + timedelta(days=1)
|
@@ -425,20 +425,10 @@ reset_autoincrement_queries: Dict[str, Union[str, List[str]]] = {
|
|
425
425
|
SET seq = {val}
|
426
426
|
WHERE name = '{table}'
|
427
427
|
""",
|
428
|
-
'oracle':
|
429
|
-
""
|
430
|
-
|
431
|
-
|
432
|
-
current_val NUMBER;
|
433
|
-
BEGIN
|
434
|
-
SELECT {table_seq_name}.NEXTVAL INTO current_val FROM dual;
|
435
|
-
|
436
|
-
WHILE current_val < max_id LOOP
|
437
|
-
SELECT {table_seq_name}.NEXTVAL INTO current_val FROM dual;
|
438
|
-
END LOOP;
|
439
|
-
END;
|
440
|
-
""",
|
441
|
-
],
|
428
|
+
'oracle': (
|
429
|
+
"ALTER TABLE {table_name} MODIFY {column_name} "
|
430
|
+
"GENERATED BY DEFAULT ON NULL AS IDENTITY (START WITH {val_plus_1})"
|
431
|
+
),
|
442
432
|
}
|
443
433
|
table_wrappers = {
|
444
434
|
'default' : ('"', '"'),
|
@@ -2225,18 +2215,8 @@ def get_reset_autoincrement_queries(
|
|
2225
2215
|
schema = schema or connector.schema
|
2226
2216
|
max_id_name = sql_item_name('max_id', connector.flavor)
|
2227
2217
|
table_name = sql_item_name(table, connector.flavor, schema)
|
2228
|
-
table_trunc = truncate_item_name(table, connector.flavor)
|
2229
2218
|
table_seq_name = sql_item_name(table + '_' + column + '_seq', connector.flavor, schema)
|
2230
2219
|
column_name = sql_item_name(column, connector.flavor)
|
2231
|
-
if connector.flavor == 'oracle':
|
2232
|
-
df = connector.read(f"""
|
2233
|
-
SELECT SEQUENCE_NAME
|
2234
|
-
FROM ALL_TAB_IDENTITY_COLS
|
2235
|
-
WHERE TABLE_NAME IN '{table_trunc.upper()}'
|
2236
|
-
""", debug=debug)
|
2237
|
-
if len(df) > 0:
|
2238
|
-
table_seq_name = df['sequence_name'][0]
|
2239
|
-
|
2240
2220
|
max_id = connector.value(
|
2241
2221
|
f"""
|
2242
2222
|
SELECT COALESCE(MAX({column_name}), 0) AS {max_id_name}
|
@@ -2261,7 +2241,8 @@ def get_reset_autoincrement_queries(
|
|
2261
2241
|
table=table,
|
2262
2242
|
table_name=table_name,
|
2263
2243
|
table_seq_name=table_seq_name,
|
2264
|
-
val=
|
2244
|
+
val=max_id,
|
2245
|
+
val_plus_1=(max_id + 1),
|
2265
2246
|
)
|
2266
2247
|
for query in reset_queries
|
2267
2248
|
]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: meerschaum
|
3
|
-
Version: 2.6.
|
3
|
+
Version: 2.6.17
|
4
4
|
Summary: Sync Time-Series Pipes with Meerschaum
|
5
5
|
Home-page: https://meerschaum.io
|
6
6
|
Author: Bennett Meares
|
@@ -80,7 +80,7 @@ Requires-Dist: duckdb>=1.0.0; extra == "drivers"
|
|
80
80
|
Requires-Dist: duckdb-engine>=0.13.0; extra == "drivers"
|
81
81
|
Provides-Extra: drivers-extras
|
82
82
|
Requires-Dist: pyodbc>=4.0.30; extra == "drivers-extras"
|
83
|
-
Requires-Dist:
|
83
|
+
Requires-Dist: oracledb>=2.5.0; extra == "drivers-extras"
|
84
84
|
Provides-Extra: cli
|
85
85
|
Requires-Dist: pgcli>=3.1.0; extra == "cli"
|
86
86
|
Requires-Dist: mycli>=1.23.2; extra == "cli"
|
@@ -708,6 +708,7 @@ def test_nested_chunks(flavor: str):
|
|
708
708
|
assert len(df) == num_docs
|
709
709
|
|
710
710
|
|
711
|
+
@pytest.mark.skip(reason="Python 3.13 Dask, numpy compatability.")
|
711
712
|
@pytest.mark.parametrize("flavor", get_flavors())
|
712
713
|
def test_sync_dask_dataframe(flavor: str):
|
713
714
|
"""
|
@@ -943,6 +944,7 @@ def test_autoincrement_primary_key(flavor: str):
|
|
943
944
|
df = pipe.get_data(['shirt_size'], params={'id': [4, 5]}, debug=debug)
|
944
945
|
assert list(df['shirt_size']) == ['L', 'M']
|
945
946
|
|
947
|
+
return pipe
|
946
948
|
success, msg = pipe.sync([{'color': 'purple'}, {'shirt_size': 'S'}], debug=debug)
|
947
949
|
assert success, msg
|
948
950
|
|
@@ -966,10 +968,10 @@ def test_autoincrement_primary_key_inferred(flavor: str):
|
|
966
968
|
if conn.flavor in SKIP_AUTO_INCREMENT_FLAVORS:
|
967
969
|
return
|
968
970
|
|
969
|
-
pipe = mrsm.Pipe('test_sync', '
|
971
|
+
pipe = mrsm.Pipe('test_sync', 'pk', 'implicit', instance=conn)
|
970
972
|
pipe.delete()
|
971
973
|
pipe = mrsm.Pipe(
|
972
|
-
'test_sync', '
|
974
|
+
'test_sync', 'pk', 'implicit',
|
973
975
|
instance=conn,
|
974
976
|
columns={
|
975
977
|
'primary': 'id',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|