meerschaum 2.6.3__tar.gz → 2.6.5__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.3/meerschaum.egg-info → meerschaum-2.6.5}/PKG-INFO +1 -1
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_version.py +1 -1
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_pipes.py +21 -1
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_sql.py +1 -1
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/valkey/_pipes.py +1 -1
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_data.py +2 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/dtypes/__init__.py +4 -1
- {meerschaum-2.6.3 → meerschaum-2.6.5/meerschaum.egg-info}/PKG-INFO +1 -1
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_pipes_dtypes.py +105 -14
- {meerschaum-2.6.3 → meerschaum-2.6.5}/LICENSE +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/NOTICE +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/README.md +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/__main__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/arguments/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/arguments/_parser.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/docs/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/docs/index.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/entry.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/gui/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/gui/app/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/gui/app/_windows.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/gui/app/actions.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/gui/app/pipes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/shell/Shell.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/shell/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/shell/resources/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/shell/updates.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/term/TermPageHandler.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/term/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/_internal/term/tools.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/api.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/attach.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/bootstrap.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/clear.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/copy.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/deduplicate.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/delete.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/drop.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/edit.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/install.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/login.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/os.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/pause.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/python.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/register.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/reload.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/restart.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/setup.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/sh.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/show.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/sql.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/stack.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/start.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/stop.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/sync.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/tag.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/uninstall.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/upgrade.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/actions/verify.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/_chain.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/_events.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/_oauth2.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/_websockets.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/assets/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/assets/ansi_up.js +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/assets/favicon.ico +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/callbacks/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/callbacks/custom.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/callbacks/dashboard.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/callbacks/jobs.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/callbacks/login.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/callbacks/pipes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/callbacks/plugins.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/callbacks/register.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/components.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/connectors.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/graphs.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/jobs.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/keys.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/pages/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/pages/dashboard.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/pages/error.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/pages/job.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/pages/login.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/pages/pipes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/pages/plugins.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/pages/register.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/pipes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/plugins.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/sessions.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/sync.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/users.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/websockets.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/dash/webterm.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/models/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/models/_interfaces.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/models/_locations.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/models/_metrics.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/models/_pipes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/css/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/css/dash.css +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/css/styles.css +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/css/xterm.css +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/ico/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/ico/logo.ico +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/js/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/js/action_button.js +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/js/main.js +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/js/terminado.js +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/js/xterm.js +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/static/png/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/templates/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/templates/index.html +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/templates/old_index.html +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/templates/secret.html +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/resources/templates/termpage.html +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_actions.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_connectors.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_index.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_jobs.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_login.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_misc.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_pipes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_plugins.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_users.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_version.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/routes/_webterm.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/api/tables/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_dash.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_default.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_edit.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_environment.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_formatting.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_jobs.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_patch.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_paths.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_preprocess.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_read_config.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_shell.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/_sync.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/paths.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/resources/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/stack/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/stack/grafana/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/stack/resources/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/config/static/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/_Connector.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_APIConnector.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_actions.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_fetch.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_jobs.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_login.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_misc.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_pipes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_plugins.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_request.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_uri.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/api/_users.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/parse.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/plugin/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/poll.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_SQLConnector.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_cli.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_create_engine.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_fetch.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_instance.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_plugins.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_uri.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/_users.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/tables/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/tables/types.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/sql/tools.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/valkey/_ValkeyConnector.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/valkey/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/valkey/_fetch.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/valkey/_plugins.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/connectors/valkey/_users.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_attributes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_bootstrap.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_clear.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_copy.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_deduplicate.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_delete.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_drop.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_dtypes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_edit.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_fetch.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_register.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_show.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_sync.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Pipe/_verify.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/Plugin/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/User/_User.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/User/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/core/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/jobs/_Executor.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/jobs/_Job.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/jobs/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/jobs/systemd.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/plugins/_Plugin.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/plugins/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/plugins/bootstrap.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/_get_pipes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/daemon/Daemon.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/daemon/RotatingFile.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/daemon/StdinFile.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/daemon/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/daemon/_names.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/dataframe.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/debug.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/dtypes/sql.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/formatting/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/formatting/_jobs.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/formatting/_pipes.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/formatting/_pprint.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/formatting/_shell.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/interactive.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/misc.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/networking.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/packages/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/packages/_packages.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/packages/lazy_loader.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/pool.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/process.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/prompt.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/schedule.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/sql.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/threading.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/typing.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/venv/_Venv.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/venv/__init__.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/warnings.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum/utils/yaml.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum.egg-info/SOURCES.txt +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum.egg-info/dependency_links.txt +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum.egg-info/entry_points.txt +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum.egg-info/requires.txt +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum.egg-info/top_level.txt +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/meerschaum.egg-info/zip-safe +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/setup.cfg +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/setup.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_actions.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_arguments.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_deduplicate.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_jobs.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_pipe_data.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_sql.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_sync.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_users.py +0 -0
- {meerschaum-2.6.3 → meerschaum-2.6.5}/tests/test_verify.py +0 -0
@@ -877,10 +877,21 @@ def get_pipe_data(
|
|
877
877
|
attempt_cast_to_uuid,
|
878
878
|
are_dtypes_equal,
|
879
879
|
)
|
880
|
+
from meerschaum.utils.dtypes.sql import get_pd_type_from_db_type
|
880
881
|
pd = import_pandas()
|
881
882
|
is_dask = 'dask' in pd.__name__
|
882
883
|
|
883
|
-
|
884
|
+
cols_types = pipe.get_columns_types(debug=debug)
|
885
|
+
dtypes = {
|
886
|
+
**{
|
887
|
+
p_col: to_pandas_dtype(p_typ)
|
888
|
+
for p_col, p_typ in pipe.dtypes.items()
|
889
|
+
},
|
890
|
+
**{
|
891
|
+
col: get_pd_type_from_db_type(typ)
|
892
|
+
for col, typ in cols_types.items()
|
893
|
+
}
|
894
|
+
}
|
884
895
|
if dtypes:
|
885
896
|
if self.flavor == 'sqlite':
|
886
897
|
if not pipe.columns.get('datetime', None):
|
@@ -1078,7 +1089,12 @@ def get_pipe_data_query(
|
|
1078
1089
|
"""
|
1079
1090
|
from meerschaum.utils.misc import items_str
|
1080
1091
|
from meerschaum.utils.sql import sql_item_name, dateadd_str
|
1092
|
+
from meerschaum.utils.dtypes import coerce_timezone
|
1093
|
+
from meerschaum.utils.dtypes.sql import get_pd_type_from_db_type
|
1094
|
+
|
1095
|
+
dt_col = pipe.columns.get('datetime', None)
|
1081
1096
|
existing_cols = pipe.get_columns_types(debug=debug)
|
1097
|
+
dt_typ = get_pd_type_from_db_type(existing_cols[dt_col]) if dt_col in existing_cols else None
|
1082
1098
|
select_columns = (
|
1083
1099
|
[col for col in existing_cols]
|
1084
1100
|
if not select_columns
|
@@ -1097,6 +1113,10 @@ def get_pipe_data_query(
|
|
1097
1113
|
begin -= backtrack_interval
|
1098
1114
|
|
1099
1115
|
begin, end = pipe.parse_date_bounds(begin, end)
|
1116
|
+
if isinstance(begin, datetime) and dt_typ:
|
1117
|
+
begin = coerce_timezone(begin, strip_utc=('utc' not in dt_typ.lower()))
|
1118
|
+
if isinstance(end, datetime) and dt_typ:
|
1119
|
+
end = coerce_timezone(end, strip_utc=('utc' not in dt_typ.lower()))
|
1100
1120
|
|
1101
1121
|
cols_names = [
|
1102
1122
|
sql_item_name(col, self.flavor, None)
|
@@ -641,7 +641,7 @@ def exec_queries(
|
|
641
641
|
will be considered a callable hook that returns a list of queries to be executed
|
642
642
|
before the next item in the list.
|
643
643
|
|
644
|
-
break_on_error: bool, default
|
644
|
+
break_on_error: bool, default False
|
645
645
|
If `True`, stop executing when a query fails.
|
646
646
|
|
647
647
|
rollback: bool, default True
|
@@ -416,7 +416,7 @@ def get_pipe_data(
|
|
416
416
|
table_name = self.quote_table(pipe.target)
|
417
417
|
indices = [col for col in pipe.columns.values() if col]
|
418
418
|
ix_docs = [
|
419
|
-
string_to_dict(doc
|
419
|
+
string_to_dict(doc.get('ix', '').replace(COLON, ':'))
|
420
420
|
for doc in self.read_docs(
|
421
421
|
pipe.target,
|
422
422
|
begin=begin,
|
@@ -737,6 +737,8 @@ def parse_date_bounds(self, *dt_vals: Union[datetime, int, None]) -> Union[
|
|
737
737
|
|
738
738
|
dt_col = self.columns.get('datetime', None)
|
739
739
|
dt_typ = str(self.dtypes.get(dt_col, 'datetime64[ns, UTC]'))
|
740
|
+
if dt_typ == 'datetime':
|
741
|
+
dt_typ = 'datetime64[ns, UTC]'
|
740
742
|
return coerce_timezone(dt_val, strip_utc=('utc' not in dt_typ.lower()))
|
741
743
|
|
742
744
|
bounds = tuple(_parse_date_bound(dt_val) for dt_val in dt_vals)
|
@@ -136,10 +136,10 @@ def test_force_json_dtype(flavor: str):
|
|
136
136
|
conn = conns[flavor]
|
137
137
|
pipe = Pipe('foo', 'bar', session_id, instance=conn, dtypes={'a': 'json'})
|
138
138
|
_ = pipe.delete(debug=debug)
|
139
|
-
pipe = Pipe('foo', 'bar', session_id, instance=conn, dtypes={'a': 'json'})
|
139
|
+
pipe = Pipe('foo', 'bar', session_id, instance=conn, dtypes={'a': 'json'}, columns=['id'])
|
140
140
|
success, msg = pipe.sync([
|
141
|
-
{'a': json.dumps(['b', 'c'])},
|
142
|
-
{'a': json.dumps({'b': 1})},
|
141
|
+
{'id': 1, 'a': json.dumps(['b', 'c'])},
|
142
|
+
{'id': 2, 'a': json.dumps({'b': 1})},
|
143
143
|
])
|
144
144
|
assert success, msg
|
145
145
|
pprint(pipe.get_columns_types())
|
@@ -171,10 +171,10 @@ def test_infer_numeric_dtype(flavor: str):
|
|
171
171
|
conn = conns[flavor]
|
172
172
|
pipe = Pipe('infer', 'numeric', instance=conn)
|
173
173
|
_ = pipe.delete(debug=debug)
|
174
|
-
pipe = Pipe('infer', 'numeric', instance=conn)
|
174
|
+
pipe = Pipe('infer', 'numeric', instance=conn, columns=['id'])
|
175
175
|
success, msg = pipe.sync([
|
176
|
-
{'a': Decimal('1')},
|
177
|
-
{'a': Decimal(numeric_str)},
|
176
|
+
{'id': 1, 'a': Decimal('1')},
|
177
|
+
{'id': 2, 'a': Decimal(numeric_str)},
|
178
178
|
])
|
179
179
|
assert success, msg
|
180
180
|
pprint(pipe.get_columns_types())
|
@@ -195,11 +195,11 @@ def test_infer_uuid_dtype(flavor: str):
|
|
195
195
|
conn = conns[flavor]
|
196
196
|
pipe = Pipe('infer', 'uuid', instance=conn)
|
197
197
|
_ = pipe.delete(debug=debug)
|
198
|
-
pipe = Pipe('infer', 'uuid', instance=conn)
|
198
|
+
pipe = Pipe('infer', 'uuid', instance=conn, columns=['id'])
|
199
199
|
uuid_str = "e6f3a4ea-f1af-4e93-8da9-716b57672206"
|
200
200
|
success, msg = pipe.sync(
|
201
201
|
[
|
202
|
-
{'a': UUID(uuid_str)},
|
202
|
+
{'id': 1, 'a': UUID(uuid_str)},
|
203
203
|
],
|
204
204
|
debug=debug,
|
205
205
|
)
|
@@ -222,10 +222,10 @@ def test_infer_numeric_from_mixed_types(flavor: str):
|
|
222
222
|
conn = conns[flavor]
|
223
223
|
pipe = Pipe('foo', 'bar', session_id, instance=conn)
|
224
224
|
_ = pipe.delete(debug=debug)
|
225
|
-
pipe = Pipe('foo', 'bar', session_id, instance=conn)
|
226
|
-
success, msg = pipe.sync([{'a': 1}])
|
225
|
+
pipe = Pipe('foo', 'bar', session_id, instance=conn, columns=['id'])
|
226
|
+
success, msg = pipe.sync([{'id': 1, 'a': 1}])
|
227
227
|
assert success, msg
|
228
|
-
success, msg = pipe.sync([{'a': 2.1}])
|
228
|
+
success, msg = pipe.sync([{'id': 2, 'a': 2.1}])
|
229
229
|
assert success, msg
|
230
230
|
pprint(pipe.get_columns_types())
|
231
231
|
df = pipe.get_data(debug=debug)
|
@@ -247,10 +247,10 @@ def test_force_numeric_dtype(flavor: str):
|
|
247
247
|
conn = conns[flavor]
|
248
248
|
pipe = Pipe('foo', 'bar', session_id, instance=conn, dtypes={'a': 'numeric'})
|
249
249
|
_ = pipe.delete(debug=debug)
|
250
|
-
pipe = Pipe('foo', 'bar', session_id, instance=conn, dtypes={'a': 'numeric'})
|
250
|
+
pipe = Pipe('foo', 'bar', session_id, instance=conn, dtypes={'a': 'numeric'}, columns=['id'])
|
251
251
|
success, msg = pipe.sync([
|
252
|
-
{'a': '1'},
|
253
|
-
{'a': '2.1'},
|
252
|
+
{'id': 1, 'a': '1'},
|
253
|
+
{'id': 2, 'a': '2.1'},
|
254
254
|
])
|
255
255
|
assert success, msg
|
256
256
|
pprint(pipe.get_columns_types())
|
@@ -706,3 +706,94 @@ def test_sync_uuids_simple_upsert(flavor: str):
|
|
706
706
|
assert len(df) == 1
|
707
707
|
assert isinstance(df['val'][0], UUID)
|
708
708
|
assert df['val'][0] == UUID('d1cc1516-16e5-4471-8ab9-e969a1def655')
|
709
|
+
|
710
|
+
|
711
|
+
@pytest.mark.parametrize("flavor", get_flavors())
|
712
|
+
def test_mixed_timezone_aware_and_naive(flavor: str):
|
713
|
+
conn = conns[flavor]
|
714
|
+
if conn.type != 'sql':
|
715
|
+
return
|
716
|
+
|
717
|
+
pd = mrsm.attempt_import('pandas')
|
718
|
+
target = 'test_timezone_mix'
|
719
|
+
pipe = mrsm.Pipe('test', 'timezone', 'aware_naive', instance=conn)
|
720
|
+
pipe.delete()
|
721
|
+
pipe = mrsm.Pipe(
|
722
|
+
'test', 'timezone', 'aware_naive',
|
723
|
+
instance=conn,
|
724
|
+
columns={'datetime': 'ts'},
|
725
|
+
target=target,
|
726
|
+
)
|
727
|
+
|
728
|
+
src_df = pd.DataFrame([{'ts': datetime(2024, 1, 1), 'val': 2}])
|
729
|
+
conn.to_sql(src_df, target, debug=debug)
|
730
|
+
|
731
|
+
df = pipe.get_data(debug=debug)
|
732
|
+
unseen, update, delta = pipe.filter_existing(src_df, debug=debug)
|
733
|
+
assert len(unseen) == 0
|
734
|
+
assert len(update) == 0
|
735
|
+
assert len(delta) == 0
|
736
|
+
|
737
|
+
success, msg = pipe.sync([{'ts': '2024-01-01 05:00:00', 'val': 3}])
|
738
|
+
assert success, msg
|
739
|
+
|
740
|
+
df = pipe.get_data(begin='2024-01-01 05:00:00', debug=debug)
|
741
|
+
assert len(df) == 1
|
742
|
+
assert df['val'][0] == 3
|
743
|
+
|
744
|
+
success, msg = pipe.sync([{'ts': '2024-01-01 05:00:00+00:00', 'val': 4}])
|
745
|
+
assert success, msg
|
746
|
+
|
747
|
+
df = pipe.get_data(begin='2024-01-01 05:00:00+00:00', debug=debug)
|
748
|
+
assert len(df) == 1
|
749
|
+
assert df['val'][0] == 4
|
750
|
+
|
751
|
+
|
752
|
+
@pytest.mark.parametrize("flavor", get_flavors())
|
753
|
+
def test_parse_date_bounds(flavor: str):
|
754
|
+
"""
|
755
|
+
Test that datetime bounds are parsed correctly.
|
756
|
+
"""
|
757
|
+
conn = conns[flavor]
|
758
|
+
pipe = mrsm.Pipe('test', 'parse_date_bounds', 'tz', instance=conn)
|
759
|
+
pipe.delete()
|
760
|
+
pipe = mrsm.Pipe('test', 'parse_date_bounds', 'tz', instance=conn, columns={'datetime': 'ts'})
|
761
|
+
success, msg = pipe.sync([{'ts': '2024-01-01'}], debug=debug)
|
762
|
+
assert success, msg
|
763
|
+
|
764
|
+
naive_begin = datetime(2024, 1, 1)
|
765
|
+
naive_end = datetime(2024, 1, 2)
|
766
|
+
aware_begin = datetime(2024, 1, 1, tzinfo=timezone.utc)
|
767
|
+
aware_end = datetime(2024, 2, 1, tzinfo=timezone.utc)
|
768
|
+
|
769
|
+
begin, end = pipe.parse_date_bounds(naive_begin, naive_end)
|
770
|
+
assert begin.tzinfo is not None
|
771
|
+
assert end.tzinfo is not None
|
772
|
+
begin, end = pipe.parse_date_bounds(aware_begin, aware_end)
|
773
|
+
assert begin.tzinfo is not None
|
774
|
+
assert end.tzinfo is not None
|
775
|
+
begin, end = pipe.parse_date_bounds(naive_begin, aware_end)
|
776
|
+
assert begin.tzinfo is not None
|
777
|
+
assert end.tzinfo is not None
|
778
|
+
|
779
|
+
pipe = mrsm.Pipe('test', 'parse_date_bounds', 'naive', instance=conn)
|
780
|
+
pipe.delete()
|
781
|
+
pipe = mrsm.Pipe(
|
782
|
+
'test', 'parse_date_bounds', 'naive',
|
783
|
+
instance=conn,
|
784
|
+
columns={'datetime': 'ts'},
|
785
|
+
dtypes={'ts': 'datetime64[ns]'},
|
786
|
+
)
|
787
|
+
|
788
|
+
success, msg = pipe.sync([{'ts': '2024-01-01'}], debug=debug)
|
789
|
+
assert success, msg
|
790
|
+
|
791
|
+
begin, end = pipe.parse_date_bounds(naive_begin, naive_end)
|
792
|
+
assert begin.tzinfo is None
|
793
|
+
assert end.tzinfo is None
|
794
|
+
begin, end = pipe.parse_date_bounds(aware_begin, aware_end)
|
795
|
+
assert begin.tzinfo is None
|
796
|
+
assert end.tzinfo is None
|
797
|
+
begin, end = pipe.parse_date_bounds(naive_begin, aware_end)
|
798
|
+
assert begin.tzinfo is None
|
799
|
+
assert end.tzinfo is None
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|