meerschaum 2.9.4__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- meerschaum-3.0.0/MANIFEST.in +2 -0
- meerschaum-3.0.0/NOTICE +2 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/PKG-INFO +94 -96
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/__init__.py +5 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/__init__.py +1 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/arguments/_parse_arguments.py +4 -4
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/arguments/_parser.py +33 -4
- meerschaum-3.0.0/meerschaum/_internal/cli/__init__.py +6 -0
- meerschaum-3.0.0/meerschaum/_internal/cli/daemons.py +103 -0
- meerschaum-3.0.0/meerschaum/_internal/cli/entry.py +220 -0
- meerschaum-3.0.0/meerschaum/_internal/cli/workers.py +435 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/docs/index.py +48 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/entry.py +50 -14
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/shell/Shell.py +121 -29
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/shell/__init__.py +4 -1
- meerschaum-3.0.0/meerschaum/_internal/static.py +359 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/term/TermPageHandler.py +1 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/term/__init__.py +40 -6
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/term/tools.py +33 -8
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/__init__.py +6 -4
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/api.py +53 -13
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/attach.py +1 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/bootstrap.py +8 -8
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/delete.py +4 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/edit.py +171 -25
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/login.py +8 -8
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/register.py +143 -6
- meerschaum-3.0.0/meerschaum/actions/reload.py +38 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/restart.py +14 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/show.py +184 -31
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/start.py +166 -17
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/stop.py +38 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/sync.py +7 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/tag.py +9 -8
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/verify.py +5 -8
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/__init__.py +45 -15
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/_events.py +46 -4
- meerschaum-3.0.0/meerschaum/api/_oauth2.py +205 -0
- meerschaum-3.0.0/meerschaum/api/_tokens.py +102 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/__init__.py +0 -3
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/callbacks/__init__.py +1 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/callbacks/custom.py +4 -3
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/callbacks/dashboard.py +228 -117
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/callbacks/jobs.py +14 -7
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/callbacks/login.py +10 -1
- meerschaum-3.0.0/meerschaum/api/dash/callbacks/pipes.py +235 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/callbacks/plugins.py +0 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/callbacks/register.py +10 -3
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/callbacks/settings/password_reset.py +2 -2
- meerschaum-3.0.0/meerschaum/api/dash/callbacks/tokens.py +389 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/components.py +36 -15
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/jobs.py +1 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/keys.py +35 -93
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/pages/__init__.py +2 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/pages/dashboard.py +1 -20
- meerschaum-2.9.4/meerschaum/api/dash/pages/job.py → meerschaum-3.0.0/meerschaum/api/dash/pages/jobs.py +10 -7
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/pages/login.py +2 -2
- meerschaum-3.0.0/meerschaum/api/dash/pages/pipes.py +33 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/pages/settings/password_reset.py +1 -1
- meerschaum-3.0.0/meerschaum/api/dash/pages/tokens.py +53 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/pipes.py +438 -88
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/sessions.py +12 -0
- meerschaum-3.0.0/meerschaum/api/dash/tokens.py +603 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/websockets.py +1 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/webterm.py +18 -6
- meerschaum-3.0.0/meerschaum/api/models/__init__.py +31 -0
- meerschaum-3.0.0/meerschaum/api/models/_actions.py +22 -0
- meerschaum-3.0.0/meerschaum/api/models/_pipes.py +105 -0
- meerschaum-3.0.0/meerschaum/api/models/_tokens.py +81 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/css/dash.css +16 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/js/terminado.js +3 -0
- meerschaum-3.0.0/meerschaum/api/resources/static/js/xterm-addon-unicode11.js +2 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/templates/termpage.html +13 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/__init__.py +1 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_actions.py +3 -4
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_connectors.py +3 -7
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_jobs.py +26 -35
- meerschaum-3.0.0/meerschaum/api/routes/_login.py +183 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_misc.py +5 -10
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_pipes.py +178 -143
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_plugins.py +38 -28
- meerschaum-3.0.0/meerschaum/api/routes/_tokens.py +236 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_users.py +47 -35
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_version.py +3 -3
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_webterm.py +3 -3
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/__init__.py +100 -30
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_default.py +132 -64
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_edit.py +38 -32
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_formatting.py +2 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_patch.py +10 -8
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_paths.py +133 -13
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_read_config.py +87 -36
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_sync.py +6 -3
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_version.py +1 -1
- meerschaum-3.0.0/meerschaum/config/environment.py +262 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/stack/__init__.py +37 -15
- meerschaum-3.0.0/meerschaum/config/static.py +18 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/_Connector.py +11 -6
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/__init__.py +41 -22
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_APIConnector.py +34 -6
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_actions.py +2 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_jobs.py +12 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_login.py +33 -7
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_misc.py +2 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_pipes.py +23 -32
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_plugins.py +2 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_request.py +1 -1
- meerschaum-3.0.0/meerschaum/connectors/api/_tokens.py +146 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_users.py +70 -58
- meerschaum-3.0.0/meerschaum/connectors/instance/_InstanceConnector.py +83 -0
- meerschaum-3.0.0/meerschaum/connectors/instance/__init__.py +10 -0
- meerschaum-3.0.0/meerschaum/connectors/instance/_pipes.py +442 -0
- meerschaum-3.0.0/meerschaum/connectors/instance/_plugins.py +159 -0
- meerschaum-3.0.0/meerschaum/connectors/instance/_tokens.py +317 -0
- meerschaum-3.0.0/meerschaum/connectors/instance/_users.py +188 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/parse.py +5 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_SQLConnector.py +22 -5
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_cli.py +12 -11
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_create_engine.py +12 -168
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_fetch.py +2 -18
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_pipes.py +295 -278
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_plugins.py +29 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_sql.py +47 -22
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_users.py +36 -2
- meerschaum-3.0.0/meerschaum/connectors/sql/tables/__init__.py +391 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/valkey/_ValkeyConnector.py +5 -7
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/valkey/_pipes.py +60 -31
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/valkey/_plugins.py +2 -26
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/__init__.py +115 -85
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_attributes.py +425 -124
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_bootstrap.py +54 -24
- meerschaum-3.0.0/meerschaum/core/Pipe/_cache.py +555 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_clear.py +0 -11
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_data.py +96 -68
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_deduplicate.py +0 -13
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_delete.py +12 -21
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_drop.py +11 -23
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_dtypes.py +49 -19
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_edit.py +14 -4
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_fetch.py +1 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_index.py +8 -14
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_show.py +5 -5
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_sync.py +123 -204
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_verify.py +4 -4
- {meerschaum-2.9.4/meerschaum/plugins → meerschaum-3.0.0/meerschaum/core/Plugin}/_Plugin.py +16 -12
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Plugin/__init__.py +1 -1
- meerschaum-3.0.0/meerschaum/core/Token/_Token.py +220 -0
- meerschaum-3.0.0/meerschaum/core/Token/__init__.py +12 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/User/_User.py +35 -10
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/User/__init__.py +9 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/__init__.py +1 -0
- meerschaum-3.0.0/meerschaum/jobs/_Executor.py +159 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/jobs/_Job.py +149 -38
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/jobs/__init__.py +3 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/jobs/systemd.py +8 -3
- meerschaum-3.0.0/meerschaum/models/__init__.py +35 -0
- meerschaum-3.0.0/meerschaum/models/pipes.py +247 -0
- meerschaum-3.0.0/meerschaum/models/tokens.py +38 -0
- meerschaum-3.0.0/meerschaum/models/users.py +26 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/plugins/__init__.py +301 -88
- meerschaum-3.0.0/meerschaum/plugins/bootstrap.py +839 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/_get_pipes.py +97 -30
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/daemon/Daemon.py +199 -43
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/daemon/RotatingFile.py +63 -36
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/daemon/StdinFile.py +53 -13
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/daemon/__init__.py +47 -6
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/daemon/_names.py +6 -3
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/dataframe.py +480 -82
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/debug.py +49 -19
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/dtypes/__init__.py +478 -37
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/dtypes/sql.py +369 -29
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/formatting/__init__.py +5 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/formatting/_jobs.py +1 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/formatting/_pipes.py +52 -50
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/formatting/_pprint.py +1 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/formatting/_shell.py +44 -18
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/misc.py +268 -186
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/packages/__init__.py +25 -40
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/packages/_packages.py +42 -34
- meerschaum-3.0.0/meerschaum/utils/pipes.py +213 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/process.py +2 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/prompt.py +175 -144
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/schedule.py +2 -1
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/sql.py +135 -49
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/threading.py +42 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/typing.py +1 -4
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/venv/_Venv.py +2 -2
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/venv/__init__.py +7 -7
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/warnings.py +19 -13
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum.egg-info/PKG-INFO +94 -96
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum.egg-info/SOURCES.txt +37 -18
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum.egg-info/requires.txt +89 -79
- meerschaum-3.0.0/pyproject.toml +60 -0
- meerschaum-3.0.0/setup.cfg +21 -0
- meerschaum-3.0.0/setup.py +31 -0
- meerschaum-2.9.4/meerschaum/actions/reload.py +0 -21
- meerschaum-2.9.4/meerschaum/api/_oauth2.py +0 -52
- meerschaum-2.9.4/meerschaum/api/dash/callbacks/pipes.py +0 -55
- meerschaum-2.9.4/meerschaum/api/dash/pages/pipes.py +0 -22
- meerschaum-2.9.4/meerschaum/api/models/__init__.py +0 -11
- meerschaum-2.9.4/meerschaum/api/models/_interfaces.py +0 -15
- meerschaum-2.9.4/meerschaum/api/models/_locations.py +0 -15
- meerschaum-2.9.4/meerschaum/api/models/_metrics.py +0 -15
- meerschaum-2.9.4/meerschaum/api/models/_pipes.py +0 -21
- meerschaum-2.9.4/meerschaum/api/routes/_login.py +0 -78
- meerschaum-2.9.4/meerschaum/config/_environment.py +0 -145
- meerschaum-2.9.4/meerschaum/config/static/__init__.py +0 -186
- meerschaum-2.9.4/meerschaum/connectors/sql/tables/__init__.py +0 -259
- meerschaum-2.9.4/meerschaum/jobs/_Executor.py +0 -75
- meerschaum-2.9.4/meerschaum/plugins/bootstrap.py +0 -333
- meerschaum-2.9.4/setup.cfg +0 -4
- meerschaum-2.9.4/setup.py +0 -83
- meerschaum-2.9.4/tests/test_actions.py +0 -7
- meerschaum-2.9.4/tests/test_arguments.py +0 -112
- meerschaum-2.9.4/tests/test_deduplicate.py +0 -100
- meerschaum-2.9.4/tests/test_jobs.py +0 -34
- meerschaum-2.9.4/tests/test_pipe_data.py +0 -89
- meerschaum-2.9.4/tests/test_pipes_dtypes.py +0 -1197
- meerschaum-2.9.4/tests/test_sql.py +0 -114
- meerschaum-2.9.4/tests/test_sync.py +0 -1274
- meerschaum-2.9.4/tests/test_users.py +0 -20
- meerschaum-2.9.4/tests/test_verify.py +0 -127
- {meerschaum-2.9.4 → meerschaum-3.0.0}/LICENSE +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/README.md +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/__main__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/arguments/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/docs/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/shell/resources/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/_internal/shell/updates.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/clear.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/copy.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/deduplicate.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/drop.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/index.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/install.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/os.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/pause.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/python.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/setup.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/sh.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/sql.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/stack.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/uninstall.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/actions/upgrade.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/_chain.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/_chunks.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/_exceptions.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/_websockets.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/assets/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/assets/ansi_up.js +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/assets/favicon.ico +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/callbacks/settings/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/connectors.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/graphs.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/pages/error.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/pages/plugins.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/pages/register.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/pages/settings/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/plugins.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/sync.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/dash/users.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/css/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/css/styles.css +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/css/xterm.css +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/ico/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/ico/logo.ico +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/js/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/js/action_button.js +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/js/main.js +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/js/xterm.js +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/static/png/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/templates/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/templates/index.html +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/templates/old_index.html +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/resources/templates/secret.html +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/routes/_index.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/api/tables/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_dash.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_jobs.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_preprocess.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/_shell.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/paths.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/resources/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/stack/grafana/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/config/stack/resources/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_fetch.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/api/_uri.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/plugin/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/poll.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_instance.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/_uri.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/tables/types.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/sql/tools.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/valkey/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/valkey/_fetch.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/connectors/valkey/_users.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_copy.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/core/Pipe/_register.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/__init__.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/interactive.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/networking.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/packages/lazy_loader.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/pool.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum/utils/yaml.py +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum.egg-info/dependency_links.txt +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum.egg-info/entry_points.txt +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum.egg-info/top_level.txt +0 -0
- {meerschaum-2.9.4 → meerschaum-3.0.0}/meerschaum.egg-info/zip-safe +0 -0
meerschaum-3.0.0/NOTICE
ADDED
@@ -1,12 +1,10 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: meerschaum
|
3
|
-
Version:
|
3
|
+
Version: 3.0.0
|
4
4
|
Summary: Sync Time-Series Pipes with Meerschaum
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
Maintainer-email: bennett.meares@gmail.com
|
9
|
-
License: Apache Software License 2.0
|
5
|
+
Author-email: Bennett Meares <bennett.meares@gmail.com>
|
6
|
+
Maintainer-email: Bennett Meares <bennett.meares@gmail.com>
|
7
|
+
License-Expression: Apache-2.0
|
10
8
|
Project-URL: Documentation, https://docs.meerschaum.io
|
11
9
|
Project-URL: Changelog, https://meerschaum.io/news/changelog
|
12
10
|
Project-URL: GitHub, https://github.com/bmeares/Meerschaum
|
@@ -29,6 +27,7 @@ Classifier: Natural Language :: English
|
|
29
27
|
Requires-Python: >=3.8
|
30
28
|
Description-Content-Type: text/markdown
|
31
29
|
License-File: LICENSE
|
30
|
+
License-File: NOTICE
|
32
31
|
Provides-Extra: required
|
33
32
|
Provides-Extra: minimal
|
34
33
|
Provides-Extra: formatting
|
@@ -63,14 +62,16 @@ Requires-Dist: fasteners>=0.19.0; extra == "core"
|
|
63
62
|
Requires-Dist: virtualenv>=20.1.0; extra == "core"
|
64
63
|
Requires-Dist: attrs>=24.2.0; extra == "core"
|
65
64
|
Requires-Dist: uv>=0.2.11; extra == "core"
|
65
|
+
Requires-Dist: pydantic>=2.11.7; extra == "core"
|
66
|
+
Requires-Dist: annotated-types>=0.7.0; extra == "core"
|
66
67
|
Provides-Extra: jobs
|
67
|
-
Requires-Dist: dill>=0.
|
68
|
-
Requires-Dist: python-daemon>=
|
69
|
-
Requires-Dist: watchfiles>=
|
70
|
-
Requires-Dist: psutil>=
|
68
|
+
Requires-Dist: dill>=0.4.0; extra == "jobs"
|
69
|
+
Requires-Dist: python-daemon>=3.1.2; extra == "jobs"
|
70
|
+
Requires-Dist: watchfiles>=1.1.0; extra == "jobs"
|
71
|
+
Requires-Dist: psutil>=7.0.0; extra == "jobs"
|
71
72
|
Provides-Extra: drivers
|
72
73
|
Requires-Dist: cryptography>=38.0.1; extra == "drivers"
|
73
|
-
Requires-Dist: psycopg[binary]>=3.2.
|
74
|
+
Requires-Dist: psycopg[binary]>=3.2.9; extra == "drivers"
|
74
75
|
Requires-Dist: PyMySQL>=0.9.0; extra == "drivers"
|
75
76
|
Requires-Dist: aiomysql>=0.0.21; extra == "drivers"
|
76
77
|
Requires-Dist: sqlalchemy-cockroachdb>=2.0.0; extra == "drivers"
|
@@ -114,7 +115,7 @@ Requires-Dist: mkdocs-awesome-pages-plugin>=2.5.0; extra == "docs"
|
|
114
115
|
Requires-Dist: mkdocs-section-index>=0.3.3; extra == "docs"
|
115
116
|
Requires-Dist: mkdocs-linkcheck>=1.0.6; extra == "docs"
|
116
117
|
Requires-Dist: mkdocs-redirects>=1.0.4; extra == "docs"
|
117
|
-
Requires-Dist: jinja2
|
118
|
+
Requires-Dist: jinja2>=3.1.6; extra == "docs"
|
118
119
|
Provides-Extra: gui
|
119
120
|
Requires-Dist: pywebview>=3.6.3; extra == "gui"
|
120
121
|
Requires-Dist: pycparser>=2.21.0; extra == "gui"
|
@@ -125,20 +126,20 @@ Requires-Dist: modin[ray]>=0.8.3; extra == "extras"
|
|
125
126
|
Requires-Dist: nanoid>=2.0.0; extra == "extras"
|
126
127
|
Requires-Dist: importlib-metadata>=4.12.0; extra == "extras"
|
127
128
|
Provides-Extra: sql
|
128
|
-
Requires-Dist: numpy>=
|
129
|
-
Requires-Dist: pandas[parquet]>=2.
|
130
|
-
Requires-Dist: pyarrow>=
|
129
|
+
Requires-Dist: numpy>=2.3.1; extra == "sql"
|
130
|
+
Requires-Dist: pandas[parquet]>=2.3.1; extra == "sql"
|
131
|
+
Requires-Dist: pyarrow>=20.0.0; extra == "sql"
|
131
132
|
Requires-Dist: dask[complete]>=2024.12.1; extra == "sql"
|
132
133
|
Requires-Dist: partd>=1.4.2; extra == "sql"
|
133
134
|
Requires-Dist: pytz; extra == "sql"
|
134
|
-
Requires-Dist: joblib>=
|
135
|
-
Requires-Dist: SQLAlchemy>=2.0.
|
135
|
+
Requires-Dist: joblib>=1.5.1; extra == "sql"
|
136
|
+
Requires-Dist: SQLAlchemy>=2.0.41; extra == "sql"
|
136
137
|
Requires-Dist: GeoAlchemy2>=0.17.1; extra == "sql"
|
137
|
-
Requires-Dist: databases>=0.
|
138
|
-
Requires-Dist: aiosqlite>=0.
|
139
|
-
Requires-Dist: asyncpg>=0.
|
138
|
+
Requires-Dist: databases>=0.9.0; extra == "sql"
|
139
|
+
Requires-Dist: aiosqlite>=0.21.0; extra == "sql"
|
140
|
+
Requires-Dist: asyncpg>=0.30.0; extra == "sql"
|
140
141
|
Requires-Dist: cryptography>=38.0.1; extra == "sql"
|
141
|
-
Requires-Dist: psycopg[binary]>=3.2.
|
142
|
+
Requires-Dist: psycopg[binary]>=3.2.9; extra == "sql"
|
142
143
|
Requires-Dist: PyMySQL>=0.9.0; extra == "sql"
|
143
144
|
Requires-Dist: aiomysql>=0.0.21; extra == "sql"
|
144
145
|
Requires-Dist: sqlalchemy-cockroachdb>=2.0.0; extra == "sql"
|
@@ -166,43 +167,46 @@ Requires-Dist: fasteners>=0.19.0; extra == "sql"
|
|
166
167
|
Requires-Dist: virtualenv>=20.1.0; extra == "sql"
|
167
168
|
Requires-Dist: attrs>=24.2.0; extra == "sql"
|
168
169
|
Requires-Dist: uv>=0.2.11; extra == "sql"
|
170
|
+
Requires-Dist: pydantic>=2.11.7; extra == "sql"
|
171
|
+
Requires-Dist: annotated-types>=0.7.0; extra == "sql"
|
169
172
|
Requires-Dist: pyproj>=3.7.1; extra == "sql"
|
170
173
|
Requires-Dist: geopandas>=1.0.1; extra == "sql"
|
171
174
|
Requires-Dist: shapely>=2.0.7; extra == "sql"
|
172
175
|
Provides-Extra: dash
|
173
|
-
Requires-Dist: Flask-Compress>=1.
|
174
|
-
Requires-Dist: dash>=
|
176
|
+
Requires-Dist: Flask-Compress>=1.17.0; extra == "dash"
|
177
|
+
Requires-Dist: dash>=3.1.1; extra == "dash"
|
175
178
|
Requires-Dist: dash-bootstrap-components>=1.7.1; extra == "dash"
|
176
179
|
Requires-Dist: dash-ace>=0.2.1; extra == "dash"
|
177
|
-
Requires-Dist: dash-extensions>=
|
178
|
-
Requires-Dist: dash-daq>=0.
|
179
|
-
Requires-Dist: terminado>=0.
|
180
|
-
Requires-Dist: tornado>=6.1
|
180
|
+
Requires-Dist: dash-extensions>=2.0.4; extra == "dash"
|
181
|
+
Requires-Dist: dash-daq>=0.6.0; extra == "dash"
|
182
|
+
Requires-Dist: terminado>=0.18.1; extra == "dash"
|
183
|
+
Requires-Dist: tornado>=6.5.1; extra == "dash"
|
181
184
|
Provides-Extra: api
|
182
|
-
Requires-Dist: uvicorn[standard]>=0.
|
183
|
-
Requires-Dist: gunicorn>=
|
184
|
-
Requires-Dist: python-dotenv>=
|
185
|
-
Requires-Dist: websockets>=
|
186
|
-
Requires-Dist: fastapi>=0.
|
187
|
-
Requires-Dist: fastapi-login>=1.
|
188
|
-
Requires-Dist: python-multipart>=0.0.
|
189
|
-
Requires-Dist: httpx>=0.
|
190
|
-
Requires-Dist: httpcore>=1.0.
|
191
|
-
Requires-Dist: valkey>=6.
|
192
|
-
Requires-Dist:
|
193
|
-
Requires-Dist:
|
194
|
-
Requires-Dist:
|
185
|
+
Requires-Dist: uvicorn[standard]>=0.35.0; extra == "api"
|
186
|
+
Requires-Dist: gunicorn>=23.0.0; extra == "api"
|
187
|
+
Requires-Dist: python-dotenv>=1.1.1; extra == "api"
|
188
|
+
Requires-Dist: websockets>=15.0.1; extra == "api"
|
189
|
+
Requires-Dist: fastapi>=0.116.0; extra == "api"
|
190
|
+
Requires-Dist: fastapi-login>=1.10.3; extra == "api"
|
191
|
+
Requires-Dist: python-multipart>=0.0.20; extra == "api"
|
192
|
+
Requires-Dist: httpx>=0.28.1; extra == "api"
|
193
|
+
Requires-Dist: httpcore>=1.0.9; extra == "api"
|
194
|
+
Requires-Dist: valkey>=6.1.0; extra == "api"
|
195
|
+
Requires-Dist: python-jose>=3.5.0; extra == "api"
|
196
|
+
Requires-Dist: numpy>=2.3.1; extra == "api"
|
197
|
+
Requires-Dist: pandas[parquet]>=2.3.1; extra == "api"
|
198
|
+
Requires-Dist: pyarrow>=20.0.0; extra == "api"
|
195
199
|
Requires-Dist: dask[complete]>=2024.12.1; extra == "api"
|
196
200
|
Requires-Dist: partd>=1.4.2; extra == "api"
|
197
201
|
Requires-Dist: pytz; extra == "api"
|
198
|
-
Requires-Dist: joblib>=
|
199
|
-
Requires-Dist: SQLAlchemy>=2.0.
|
202
|
+
Requires-Dist: joblib>=1.5.1; extra == "api"
|
203
|
+
Requires-Dist: SQLAlchemy>=2.0.41; extra == "api"
|
200
204
|
Requires-Dist: GeoAlchemy2>=0.17.1; extra == "api"
|
201
|
-
Requires-Dist: databases>=0.
|
202
|
-
Requires-Dist: aiosqlite>=0.
|
203
|
-
Requires-Dist: asyncpg>=0.
|
205
|
+
Requires-Dist: databases>=0.9.0; extra == "api"
|
206
|
+
Requires-Dist: aiosqlite>=0.21.0; extra == "api"
|
207
|
+
Requires-Dist: asyncpg>=0.30.0; extra == "api"
|
204
208
|
Requires-Dist: cryptography>=38.0.1; extra == "api"
|
205
|
-
Requires-Dist: psycopg[binary]>=3.2.
|
209
|
+
Requires-Dist: psycopg[binary]>=3.2.9; extra == "api"
|
206
210
|
Requires-Dist: PyMySQL>=0.9.0; extra == "api"
|
207
211
|
Requires-Dist: aiomysql>=0.0.21; extra == "api"
|
208
212
|
Requires-Dist: sqlalchemy-cockroachdb>=2.0.0; extra == "api"
|
@@ -230,6 +234,8 @@ Requires-Dist: fasteners>=0.19.0; extra == "api"
|
|
230
234
|
Requires-Dist: virtualenv>=20.1.0; extra == "api"
|
231
235
|
Requires-Dist: attrs>=24.2.0; extra == "api"
|
232
236
|
Requires-Dist: uv>=0.2.11; extra == "api"
|
237
|
+
Requires-Dist: pydantic>=2.11.7; extra == "api"
|
238
|
+
Requires-Dist: annotated-types>=0.7.0; extra == "api"
|
233
239
|
Requires-Dist: pyproj>=3.7.1; extra == "api"
|
234
240
|
Requires-Dist: geopandas>=1.0.1; extra == "api"
|
235
241
|
Requires-Dist: shapely>=2.0.7; extra == "api"
|
@@ -241,18 +247,18 @@ Requires-Dist: colorama>=0.4.3; extra == "api"
|
|
241
247
|
Requires-Dist: rich>=13.4.2; extra == "api"
|
242
248
|
Requires-Dist: more-termcolor>=1.1.3; extra == "api"
|
243
249
|
Requires-Dist: humanfriendly>=10.0.0; extra == "api"
|
244
|
-
Requires-Dist: Flask-Compress>=1.
|
245
|
-
Requires-Dist: dash>=
|
250
|
+
Requires-Dist: Flask-Compress>=1.17.0; extra == "api"
|
251
|
+
Requires-Dist: dash>=3.1.1; extra == "api"
|
246
252
|
Requires-Dist: dash-bootstrap-components>=1.7.1; extra == "api"
|
247
253
|
Requires-Dist: dash-ace>=0.2.1; extra == "api"
|
248
|
-
Requires-Dist: dash-extensions>=
|
249
|
-
Requires-Dist: dash-daq>=0.
|
250
|
-
Requires-Dist: terminado>=0.
|
251
|
-
Requires-Dist: tornado>=6.1
|
252
|
-
Requires-Dist: dill>=0.
|
253
|
-
Requires-Dist: python-daemon>=
|
254
|
-
Requires-Dist: watchfiles>=
|
255
|
-
Requires-Dist: psutil>=
|
254
|
+
Requires-Dist: dash-extensions>=2.0.4; extra == "api"
|
255
|
+
Requires-Dist: dash-daq>=0.6.0; extra == "api"
|
256
|
+
Requires-Dist: terminado>=0.18.1; extra == "api"
|
257
|
+
Requires-Dist: tornado>=6.5.1; extra == "api"
|
258
|
+
Requires-Dist: dill>=0.4.0; extra == "api"
|
259
|
+
Requires-Dist: python-daemon>=3.1.2; extra == "api"
|
260
|
+
Requires-Dist: watchfiles>=1.1.0; extra == "api"
|
261
|
+
Requires-Dist: psutil>=7.0.0; extra == "api"
|
256
262
|
Provides-Extra: full
|
257
263
|
Requires-Dist: pprintpp>=0.4.0; extra == "full"
|
258
264
|
Requires-Dist: asciitree>=0.3.3; extra == "full"
|
@@ -284,12 +290,14 @@ Requires-Dist: fasteners>=0.19.0; extra == "full"
|
|
284
290
|
Requires-Dist: virtualenv>=20.1.0; extra == "full"
|
285
291
|
Requires-Dist: attrs>=24.2.0; extra == "full"
|
286
292
|
Requires-Dist: uv>=0.2.11; extra == "full"
|
287
|
-
Requires-Dist:
|
288
|
-
Requires-Dist:
|
289
|
-
Requires-Dist:
|
290
|
-
Requires-Dist:
|
293
|
+
Requires-Dist: pydantic>=2.11.7; extra == "full"
|
294
|
+
Requires-Dist: annotated-types>=0.7.0; extra == "full"
|
295
|
+
Requires-Dist: dill>=0.4.0; extra == "full"
|
296
|
+
Requires-Dist: python-daemon>=3.1.2; extra == "full"
|
297
|
+
Requires-Dist: watchfiles>=1.1.0; extra == "full"
|
298
|
+
Requires-Dist: psutil>=7.0.0; extra == "full"
|
291
299
|
Requires-Dist: cryptography>=38.0.1; extra == "full"
|
292
|
-
Requires-Dist: psycopg[binary]>=3.2.
|
300
|
+
Requires-Dist: psycopg[binary]>=3.2.9; extra == "full"
|
293
301
|
Requires-Dist: PyMySQL>=0.9.0; extra == "full"
|
294
302
|
Requires-Dist: aiomysql>=0.0.21; extra == "full"
|
295
303
|
Requires-Dist: sqlalchemy-cockroachdb>=2.0.0; extra == "full"
|
@@ -300,49 +308,39 @@ Requires-Dist: geopandas>=1.0.1; extra == "full"
|
|
300
308
|
Requires-Dist: shapely>=2.0.7; extra == "full"
|
301
309
|
Requires-Dist: pywebview>=3.6.3; extra == "full"
|
302
310
|
Requires-Dist: pycparser>=2.21.0; extra == "full"
|
303
|
-
Requires-Dist: numpy>=
|
304
|
-
Requires-Dist: pandas[parquet]>=2.
|
305
|
-
Requires-Dist: pyarrow>=
|
311
|
+
Requires-Dist: numpy>=2.3.1; extra == "full"
|
312
|
+
Requires-Dist: pandas[parquet]>=2.3.1; extra == "full"
|
313
|
+
Requires-Dist: pyarrow>=20.0.0; extra == "full"
|
306
314
|
Requires-Dist: dask[complete]>=2024.12.1; extra == "full"
|
307
315
|
Requires-Dist: partd>=1.4.2; extra == "full"
|
308
316
|
Requires-Dist: pytz; extra == "full"
|
309
|
-
Requires-Dist: joblib>=
|
310
|
-
Requires-Dist: SQLAlchemy>=2.0.
|
317
|
+
Requires-Dist: joblib>=1.5.1; extra == "full"
|
318
|
+
Requires-Dist: SQLAlchemy>=2.0.41; extra == "full"
|
311
319
|
Requires-Dist: GeoAlchemy2>=0.17.1; extra == "full"
|
312
|
-
Requires-Dist: databases>=0.
|
313
|
-
Requires-Dist: aiosqlite>=0.
|
314
|
-
Requires-Dist: asyncpg>=0.
|
315
|
-
Requires-Dist: Flask-Compress>=1.
|
316
|
-
Requires-Dist: dash>=
|
320
|
+
Requires-Dist: databases>=0.9.0; extra == "full"
|
321
|
+
Requires-Dist: aiosqlite>=0.21.0; extra == "full"
|
322
|
+
Requires-Dist: asyncpg>=0.30.0; extra == "full"
|
323
|
+
Requires-Dist: Flask-Compress>=1.17.0; extra == "full"
|
324
|
+
Requires-Dist: dash>=3.1.1; extra == "full"
|
317
325
|
Requires-Dist: dash-bootstrap-components>=1.7.1; extra == "full"
|
318
326
|
Requires-Dist: dash-ace>=0.2.1; extra == "full"
|
319
|
-
Requires-Dist: dash-extensions>=
|
320
|
-
Requires-Dist: dash-daq>=0.
|
321
|
-
Requires-Dist: terminado>=0.
|
322
|
-
Requires-Dist: tornado>=6.1
|
323
|
-
Requires-Dist: uvicorn[standard]>=0.
|
324
|
-
Requires-Dist: gunicorn>=
|
325
|
-
Requires-Dist: python-dotenv>=
|
326
|
-
Requires-Dist: websockets>=
|
327
|
-
Requires-Dist: fastapi>=0.
|
328
|
-
Requires-Dist: fastapi-login>=1.
|
329
|
-
Requires-Dist: python-multipart>=0.0.
|
330
|
-
Requires-Dist: httpx>=0.
|
331
|
-
Requires-Dist: httpcore>=1.0.
|
332
|
-
Requires-Dist: valkey>=6.
|
333
|
-
|
334
|
-
Dynamic: author-email
|
335
|
-
Dynamic: classifier
|
336
|
-
Dynamic: description
|
337
|
-
Dynamic: description-content-type
|
338
|
-
Dynamic: home-page
|
339
|
-
Dynamic: license
|
327
|
+
Requires-Dist: dash-extensions>=2.0.4; extra == "full"
|
328
|
+
Requires-Dist: dash-daq>=0.6.0; extra == "full"
|
329
|
+
Requires-Dist: terminado>=0.18.1; extra == "full"
|
330
|
+
Requires-Dist: tornado>=6.5.1; extra == "full"
|
331
|
+
Requires-Dist: uvicorn[standard]>=0.35.0; extra == "full"
|
332
|
+
Requires-Dist: gunicorn>=23.0.0; extra == "full"
|
333
|
+
Requires-Dist: python-dotenv>=1.1.1; extra == "full"
|
334
|
+
Requires-Dist: websockets>=15.0.1; extra == "full"
|
335
|
+
Requires-Dist: fastapi>=0.116.0; extra == "full"
|
336
|
+
Requires-Dist: fastapi-login>=1.10.3; extra == "full"
|
337
|
+
Requires-Dist: python-multipart>=0.0.20; extra == "full"
|
338
|
+
Requires-Dist: httpx>=0.28.1; extra == "full"
|
339
|
+
Requires-Dist: httpcore>=1.0.9; extra == "full"
|
340
|
+
Requires-Dist: valkey>=6.1.0; extra == "full"
|
341
|
+
Requires-Dist: python-jose>=3.5.0; extra == "full"
|
340
342
|
Dynamic: license-file
|
341
|
-
Dynamic: maintainer-email
|
342
|
-
Dynamic: project-url
|
343
343
|
Dynamic: provides-extra
|
344
|
-
Dynamic: requires-python
|
345
|
-
Dynamic: summary
|
346
344
|
|
347
345
|
<img src="https://meerschaum.io/assets/banner_1920x320.png" alt="Meerschaum banner" style="width: 100%"/>
|
348
346
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# vim:fenc=utf-8
|
4
4
|
|
5
5
|
"""
|
6
|
-
Copyright
|
6
|
+
Copyright 2025 Bennett Meares
|
7
7
|
|
8
8
|
Licensed under the Apache License, Version 2.0 (the "License");
|
9
9
|
you may not use this file except in compliance with the License.
|
@@ -19,13 +19,14 @@ limitations under the License.
|
|
19
19
|
"""
|
20
20
|
|
21
21
|
import atexit
|
22
|
+
|
22
23
|
from meerschaum.utils.typing import SuccessTuple
|
23
24
|
from meerschaum.utils.packages import attempt_import
|
24
25
|
from meerschaum.core.Pipe import Pipe
|
25
26
|
from meerschaum.plugins import Plugin
|
26
27
|
from meerschaum.utils.venv import Venv
|
27
28
|
from meerschaum.jobs import Job, make_executor
|
28
|
-
from meerschaum.connectors import get_connector, Connector, make_connector
|
29
|
+
from meerschaum.connectors import get_connector, Connector, InstanceConnector, make_connector
|
29
30
|
from meerschaum.utils import get_pipes
|
30
31
|
from meerschaum.utils.formatting import pprint
|
31
32
|
from meerschaum._internal.docs import index as __doc__
|
@@ -42,6 +43,7 @@ __all__ = (
|
|
42
43
|
"get_config",
|
43
44
|
"Pipe",
|
44
45
|
"Plugin",
|
46
|
+
"SuccessTuple",
|
45
47
|
"Venv",
|
46
48
|
"Plugin",
|
47
49
|
"Job",
|
@@ -55,6 +57,7 @@ __all__ = (
|
|
55
57
|
"utils",
|
56
58
|
"SuccessTuple",
|
57
59
|
"Connector",
|
60
|
+
"InstanceConnector",
|
58
61
|
"make_connector",
|
59
62
|
"entry",
|
60
63
|
)
|
@@ -23,7 +23,7 @@ def split_pipeline_sysargs(sysargs: List[str]) -> Tuple[List[str], List[str]]:
|
|
23
23
|
"""
|
24
24
|
Split `sysargs` into the main pipeline and the flags following the pipeline separator (`:`).
|
25
25
|
"""
|
26
|
-
from meerschaum.
|
26
|
+
from meerschaum._internal.static import STATIC_CONFIG
|
27
27
|
pipeline_key = STATIC_CONFIG['system']['arguments']['pipeline_key']
|
28
28
|
if pipeline_key not in sysargs:
|
29
29
|
return sysargs, []
|
@@ -40,7 +40,7 @@ def split_chained_sysargs(sysargs: List[str]) -> List[List[str]]:
|
|
40
40
|
Split a `sysargs` list containing "and" keys (`+`)
|
41
41
|
into a list of individual `sysargs`.
|
42
42
|
"""
|
43
|
-
from meerschaum.
|
43
|
+
from meerschaum._internal.static import STATIC_CONFIG
|
44
44
|
and_key = STATIC_CONFIG['system']['arguments']['and_key']
|
45
45
|
|
46
46
|
if not sysargs or and_key not in sysargs:
|
@@ -90,7 +90,7 @@ def parse_arguments(sysargs: List[str]) -> Dict[str, Any]:
|
|
90
90
|
|
91
91
|
"""
|
92
92
|
import shlex
|
93
|
-
from meerschaum.
|
93
|
+
from meerschaum._internal.static import STATIC_CONFIG
|
94
94
|
from meerschaum._internal.arguments._parser import parser
|
95
95
|
|
96
96
|
global _loaded_plugins_args
|
@@ -360,7 +360,7 @@ def remove_leading_action(
|
|
360
360
|
"""
|
361
361
|
from meerschaum.actions import get_action, get_main_action_name
|
362
362
|
from meerschaum.utils.warnings import warn
|
363
|
-
from meerschaum.
|
363
|
+
from meerschaum._internal.static import STATIC_CONFIG
|
364
364
|
action_function = get_action(action, _actions=_actions)
|
365
365
|
if action_function is None:
|
366
366
|
return action
|
@@ -40,7 +40,8 @@ class ArgumentParser(argparse.ArgumentParser):
|
|
40
40
|
|
41
41
|
def parse_datetime(dt_str: str) -> Union[datetime, int, str]:
|
42
42
|
"""Parse a string into a datetime."""
|
43
|
-
from meerschaum.utils.
|
43
|
+
from meerschaum.utils.dtypes import round_time
|
44
|
+
from meerschaum.utils.misc import is_int
|
44
45
|
if is_int(dt_str):
|
45
46
|
return int(dt_str)
|
46
47
|
|
@@ -139,7 +140,11 @@ def parse_help(sysargs: Union[List[str], Dict[str, Any]]) -> None:
|
|
139
140
|
### Check for subactions.
|
140
141
|
if len(args['action']) > 1:
|
141
142
|
try:
|
142
|
-
|
143
|
+
subactions = get_subactions(args['action'][0])
|
144
|
+
subaction_name = args['action'][1]
|
145
|
+
if subaction_name not in subactions:
|
146
|
+
subaction_name = subaction_name + 's'
|
147
|
+
subaction = subactions[subaction_name]
|
143
148
|
except Exception:
|
144
149
|
subaction = None
|
145
150
|
if subaction is not None:
|
@@ -195,6 +200,7 @@ groups['pipes'] = parser.add_argument_group(title='Pipes options')
|
|
195
200
|
groups['sync'] = parser.add_argument_group(title='Sync options')
|
196
201
|
groups['api'] = parser.add_argument_group(title='API options')
|
197
202
|
groups['plugins'] = parser.add_argument_group(title='Plugins options')
|
203
|
+
groups['tokens'] = parser.add_argument_group(title='Tokens options')
|
198
204
|
groups['packages'] = parser.add_argument_group(title='Packages options')
|
199
205
|
groups['debug'] = parser.add_argument_group(title='Debugging options')
|
200
206
|
groups['misc'] = parser.add_argument_group(title='Miscellaneous options')
|
@@ -375,7 +381,7 @@ groups['sync'].add_argument(
|
|
375
381
|
groups['sync'].add_argument(
|
376
382
|
'--cache', action='store_true',
|
377
383
|
help=(
|
378
|
-
"
|
384
|
+
"Sync pipes' metadata to disk."
|
379
385
|
)
|
380
386
|
)
|
381
387
|
|
@@ -387,13 +393,21 @@ groups['api'].add_argument(
|
|
387
393
|
'--host', type=str,
|
388
394
|
help="The host address to bind to for the API server. Defaults to '0.0.0.0'."
|
389
395
|
)
|
396
|
+
groups['api'].add_argument(
|
397
|
+
'--webterm-port', type=int,
|
398
|
+
help="The port on which to run the webterm server.",
|
399
|
+
)
|
390
400
|
groups['api'].add_argument(
|
391
401
|
'-w', '--workers', type=int,
|
392
402
|
help = "How many workers to run a concurrent action (e.g. running the API or syncing pipes)"
|
393
403
|
)
|
394
404
|
groups['api'].add_argument(
|
395
405
|
'--no-dash', '--nodash', action='store_true',
|
396
|
-
help = 'When starting the API, do not start the Web
|
406
|
+
help = 'When starting the API, do not start the Web Console dashboard.',
|
407
|
+
)
|
408
|
+
groups['api'].add_argument(
|
409
|
+
'--no-webterm', '--nowebterm', action='store_true',
|
410
|
+
help="When starting the API, do not start the Webterm.",
|
397
411
|
)
|
398
412
|
groups['api'].add_argument(
|
399
413
|
'--private', '--private-mode', action='store_true',
|
@@ -419,12 +433,23 @@ groups['api'].add_argument(
|
|
419
433
|
'--certfile', type=str,
|
420
434
|
help = "Start the API server with this certfile (requires --keyfile).",
|
421
435
|
)
|
436
|
+
|
422
437
|
### Plugins options
|
423
438
|
groups['plugins'].add_argument(
|
424
439
|
'-r', '--repository', '--repo', type=str,
|
425
440
|
help="Meerschaum plugins repository to connect to. Specify an API label (default: 'mrsm')"
|
426
441
|
)
|
427
442
|
|
443
|
+
### Tokens options
|
444
|
+
groups['tokens'].add_argument(
|
445
|
+
'--ttl-days', type=int,
|
446
|
+
help="For how many days should a token be valid.",
|
447
|
+
)
|
448
|
+
groups['tokens'].add_argument(
|
449
|
+
'--scopes', '--scope', nargs='+',
|
450
|
+
help="Which scope permissions to grant to a token.",
|
451
|
+
)
|
452
|
+
|
428
453
|
### Packages options
|
429
454
|
groups['packages'].add_argument(
|
430
455
|
'--venv', type=str,
|
@@ -491,3 +516,7 @@ groups['misc'].add_argument(
|
|
491
516
|
+ "Default behavior is to only allow recognized actions."
|
492
517
|
)
|
493
518
|
)
|
519
|
+
groups['misc'].add_argument(
|
520
|
+
'--no-daemon', action='store_true',
|
521
|
+
help="Do not use the Meerschaum CLI daemon to execute the action.",
|
522
|
+
)
|
@@ -0,0 +1,103 @@
|
|
1
|
+
#! /usr/bin/env python3
|
2
|
+
# vim:fenc=utf-8
|
3
|
+
|
4
|
+
"""
|
5
|
+
Define the CLI daemons utilities.
|
6
|
+
"""
|
7
|
+
|
8
|
+
import os
|
9
|
+
import threading
|
10
|
+
import pathlib
|
11
|
+
from typing import Optional, List
|
12
|
+
|
13
|
+
import meerschaum as mrsm
|
14
|
+
|
15
|
+
|
16
|
+
def get_cli_daemon(ix: Optional[int] = None):
|
17
|
+
"""
|
18
|
+
Get the CLI daemon.
|
19
|
+
"""
|
20
|
+
from meerschaum._internal.cli.workers import ActionWorker
|
21
|
+
ix = ix if ix is not None else get_available_cli_daemon_ix()
|
22
|
+
return ActionWorker(ix)
|
23
|
+
|
24
|
+
|
25
|
+
def get_cli_lock_path(ix: int) -> pathlib.Path:
|
26
|
+
"""
|
27
|
+
Return the path to a CLI daemon's lock file.
|
28
|
+
"""
|
29
|
+
from meerschaum.config.paths import CLI_RESOURCES_PATH
|
30
|
+
return CLI_RESOURCES_PATH / f"ix-{ix}.lock"
|
31
|
+
|
32
|
+
|
33
|
+
def get_cli_session_id() -> str:
|
34
|
+
"""
|
35
|
+
Return the session ID to use for the current process and thread.
|
36
|
+
"""
|
37
|
+
return f"{os.getpid()}.{threading.current_thread().ident}"
|
38
|
+
|
39
|
+
|
40
|
+
def get_available_cli_daemon_ix() -> int:
|
41
|
+
"""
|
42
|
+
Return the index for an available CLI daemon.
|
43
|
+
"""
|
44
|
+
max_ix = mrsm.get_config('system', 'cli', 'max_daemons') - 1
|
45
|
+
ix = 0
|
46
|
+
while True:
|
47
|
+
lock_path = get_cli_lock_path(ix)
|
48
|
+
if not lock_path.exists():
|
49
|
+
return ix
|
50
|
+
|
51
|
+
ix += 1
|
52
|
+
if ix > max_ix:
|
53
|
+
raise EnvironmentError("Too many CLI daemons are running.")
|
54
|
+
|
55
|
+
|
56
|
+
def get_existing_cli_daemon_indices() -> List[int]:
|
57
|
+
"""
|
58
|
+
Return a list of the existing CLI daemons.
|
59
|
+
"""
|
60
|
+
from meerschaum.utils.daemon import get_daemon_ids
|
61
|
+
daemon_ids = [daemon_id for daemon_id in get_daemon_ids() if daemon_id.startswith('.cli.')]
|
62
|
+
indices = []
|
63
|
+
|
64
|
+
for daemon_id in daemon_ids:
|
65
|
+
try:
|
66
|
+
ix = int(daemon_id[len('.cli.'):])
|
67
|
+
indices.append(ix)
|
68
|
+
except Exception:
|
69
|
+
pass
|
70
|
+
|
71
|
+
return indices
|
72
|
+
|
73
|
+
|
74
|
+
def get_existing_cli_daemons() -> 'List[ActionWorker]':
|
75
|
+
"""
|
76
|
+
Return a list of the existing CLI daemons.
|
77
|
+
"""
|
78
|
+
from meerschaum._internal.cli.workers import ActionWorker
|
79
|
+
indices = get_existing_cli_daemon_indices()
|
80
|
+
return [
|
81
|
+
ActionWorker(ix)
|
82
|
+
for ix in indices
|
83
|
+
]
|
84
|
+
|
85
|
+
|
86
|
+
def _get_cli_session_dir_path(session_id: str) -> pathlib.Path:
|
87
|
+
"""
|
88
|
+
Return the path to the file handles for the CLI session.
|
89
|
+
"""
|
90
|
+
from meerschaum.config.paths import CLI_RESOURCES_PATH
|
91
|
+
return CLI_RESOURCES_PATH / session_id
|
92
|
+
|
93
|
+
|
94
|
+
def _get_cli_stream_path(
|
95
|
+
session_id: str,
|
96
|
+
action_id: str,
|
97
|
+
stream: str = 'stdout',
|
98
|
+
) -> pathlib.Path:
|
99
|
+
"""
|
100
|
+
Return the file path for the stdout / stderr file stream.
|
101
|
+
"""
|
102
|
+
session_dir_path = _get_cli_session_dir_path(session_id)
|
103
|
+
return session_dir_path / f'{action_id}.{stream}'
|