mage-ai 0.8.38__tar.gz → 0.8.39__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.
Potentially problematic release.
This version of mage-ai might be problematic. Click here for more details.
- {mage-ai-0.8.38/mage_ai.egg-info → mage-ai-0.8.39}/PKG-INFO +1 -1
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/base.py +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/constants.py +3 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/export_utils.py +14 -1
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/mssql.py +5 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/mysql.py +7 -3
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/postgres.py +64 -21
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/sql.py +35 -6
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/trino.py +7 -3
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/constants.py +1 -1
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/404.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/404.html.html +2 -2
- mage-ai-0.8.39/mage_ai/server/frontend_dist/_next/static/chunks/5141-ddf4ba0a362d6f34.js +1 -0
- mage-ai-0.8.39/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-017f6a2de38f8658.js +1 -0
- mage-ai-0.8.39/mage_ai/server/frontend_dist/_next/static/chunks/pages/terminal-6c0ea500b3bc6b61.js +1 -0
- {mage-ai-0.8.38/mage_ai/server/frontend_dist/_next/static/R_cV5sAcMT3qDXIKAGGPe → mage-ai-0.8.39/mage_ai/server/frontend_dist/_next/static/ngCg1gM6urg83y2nV5KHK}/_buildManifest.js +1 -1
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/index.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/manage.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipeline-runs.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills/[...slug].html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/edit.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/logs.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runs.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/runs/[run].html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/runs.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/syncs.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers/[...slug].html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines/[pipeline].html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/pipelines.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/settings/account/profile.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/settings/workspace/preferences.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/settings/workspace/sync-data.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/settings/workspace/users.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/settings.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/sign-in.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/terminal.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/test.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/triggers.html +2 -2
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/server.py +2 -14
- mage-ai-0.8.39/mage_ai/server/terminal_server.py +65 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39/mage_ai.egg-info}/PKG-INFO +1 -1
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai.egg-info/SOURCES.txt +7 -6
- {mage-ai-0.8.38 → mage-ai-0.8.39}/setup.py +1 -1
- mage-ai-0.8.38/mage_ai/server/frontend_dist/_next/static/chunks/5141-2ae9eae00ec2cdfa.js +0 -1
- mage-ai-0.8.38/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-6d04570af5494767.js +0 -1
- mage-ai-0.8.38/mage_ai/server/frontend_dist/_next/static/chunks/pages/terminal-4c9ad80f8f9d1074.js +0 -1
- {mage-ai-0.8.38 → mage-ai-0.8.39}/LICENSE +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/MANIFEST.in +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/README.md +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/api_context.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/errors.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/logging.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/middleware.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/monitors/BaseMonitor.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/monitors/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/oauth_scope.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/operations/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/operations/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/operations/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/AutocompleteItemPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/BackfillPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/BasePolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/BlockPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/BlockRunPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/ClusterPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/DataProviderPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/EventRulePolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/ExtensionOptionPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/FileContentPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/FilePolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/FileVersionPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/GitBranchPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/IntegrationDestinationPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/IntegrationSourcePolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/IntegrationSourceStreamPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/KernelPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/LogPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/MonitorStatPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/OutputPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/PipelinePolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/PipelineRunPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/PipelineSchedulePolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/ProjectPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/SecretPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/SessionPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/SyncPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/UserPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/VariablePolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/WidgetPolicy.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/policies/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/AutocompleteItemPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/BackfillPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/BasePresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/BlockPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/BlockRunPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/ClusterPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/DataProviderPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/EventRulePresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/ExtensionOptionPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/FileContentPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/FilePresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/FileVersionPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/GitBranchPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/IntegrationDestinationPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/IntegrationSourcePresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/IntegrationSourceStreamPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/KernelPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/LogPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/MonitorStatPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/OutputPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/PipelinePresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/PipelineRunPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/PipelineSchedulePresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/ProjectPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/SecretPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/SessionPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/SyncPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/UserPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/VariablePresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/WidgetPresenter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/mixins/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/presenters/mixins/users.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/AutocompleteItemResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/BackfillResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/BaseResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/BlockResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/BlockRunResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/ClusterResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/DataProviderResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/DatabaseResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/EventRuleResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/ExtensionOptionResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/FileContentResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/FileResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/FileVersionResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/GenericResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/GitBranchResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/IntegrationDestinationResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/IntegrationSourceResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/IntegrationSourceStreamResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/KernelResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/LogResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/MonitorStatResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/OutputResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/PipelineResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/PipelineRunResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/PipelineScheduleResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/ProjectResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/Resource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/SecretResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/SessionResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/SyncResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/UserResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/VariableResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/WidgetResource.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/mixins/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/shared/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/shared/collections.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/resources/shared/collective_loaders.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/result_set.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/api/views.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/authentication/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/authentication/ldap.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/authentication/oauth2.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/authentication/passwords.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/autocomplete/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/autocomplete/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cli/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cli/main.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cli/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/aws/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/aws/ecs_task_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/aws/emr_cluster_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/cluster_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/gcp/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/gcp/cloud_run_service_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/kubernetes/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/cluster_manager/kubernetes/workload_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/analysis/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/analysis/calculator.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/analysis/charts.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/analysis/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/clean_column_names.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/fix_syntax_errors.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/impute_values.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/reformat_values.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/remove_collinear_columns.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/remove_columns_with_high_empty_rate.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/remove_columns_with_single_value.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/remove_duplicate_rows.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/cleaning_rules/remove_outliers.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/column_types/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/column_types/column_type_detector.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/column_types/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/data_cleaner.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/estimators/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/estimators/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/estimators/encoders.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/estimators/outlier_removal.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/pipelines/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/pipelines/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/shared/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/shared/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/statistics/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/statistics/calculator.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/action_code.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/column.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/custom_action.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/dependency_resolution.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/helpers.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/row.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/shared.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/spark/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/spark/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/spark/transformers.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/addition.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/constant.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/date_trunc.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/difference.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/distance_between.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/divide.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/formatted_date.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/if_else.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/multiply.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/string_replace.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/string_split.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/udf/substring.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_cleaner/transformer_actions/variable_replacer.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/destinations/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/destinations/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/logger/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/logger/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/sources/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/sources/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/utils/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/utils/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/utils/parsers.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_integrations/utils/scheduler.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/decorators.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/block_executor.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/ecs_block_executor.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/executor_factory.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/gcp_cloud_run_block_executor.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/k8s_block_executor.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/pipeline_executor.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/pyspark_block_executor.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/pyspark_pipeline_executor.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/executors/streaming_pipeline_executor.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/git/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/logging/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/logging/gcs_logger_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/logging/logger.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/logging/logger_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/logging/logger_manager_factory.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/logging/s3_logger_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/dbt/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/dbt/utils/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/errors.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/extension/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/extension/block.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/extension/great_expectations.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/extension/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/integration/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/r/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/r/templates/data_exporter.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/r/templates/data_loader.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/r/templates/transformer.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/bigquery.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/mssql.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/mysql.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/postgres.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/redshift.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/snowflake.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/trino.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/utils/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/sql/utils/shared.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/block/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/errors.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/file.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/pipeline.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/pipelines/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/pipelines/integration_pipeline.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/pipelines/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/variable.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/widget/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/widget/charts.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/widget/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/models/widget/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/preferences.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/repo_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/shared/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/shared/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/shared/secrets.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/shared/stream.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/shared/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/storage/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/storage/base_storage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/storage/local_storage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/storage/s3_storage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/storage/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/sync/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/sync/base_sync.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/sync/git_sync.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/callbacks/default.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/custom/python/default.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/azure_blob_storage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/bigquery.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/default.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/file.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/google_cloud_storage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/mysql.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/postgres.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/pyspark/default.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/pyspark/s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/r/default.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/redshift.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/snowflake.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/streaming/kafka.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/streaming/kinesis.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/streaming/opensearch.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_exporters/streaming/s3.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/api.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/azure_blob_storage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/bigquery.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/default.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/file.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/google_cloud_storage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/mysql.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/postgres.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/pyspark/default.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/pyspark/s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/r/default.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/redshift.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/snowflake.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/streaming/azure_event_hub.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/streaming/kafka.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/streaming/kinesis.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/data_loaders/streaming/rabbitmq.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/extensions/great_expectations/default.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/pipeline/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/pipeline/metadata.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/pipeline_execution/emr_bootstrap.sh +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/pipeline_execution/spark_script.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/charts/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/custom/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/data_exporters/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/data_exporters/export_titanic_clean.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/data_loaders/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/data_loaders/load_titanic.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/dbt/profiles.yml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/extensions/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/io_config.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/metadata.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/pipelines/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/pipelines/example_pipeline/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/pipelines/example_pipeline/metadata.yaml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/requirements.txt +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/scratchpads/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/transformers/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/transformers/fill_in_missing_values.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/repo/utils/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/sensors/bigquery.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/sensors/default.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/sensors/mysql.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/sensors/postgres.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/sensors/redshift.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/sensors/s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/sensors/snowflake.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/template.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/testable.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/data_warehouse_transformer.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/default.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/default_pyspark.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/default_streaming.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/r/default.r +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/suggestion_fmt.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/action.jinja +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/average.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/clean_column_name.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/count.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/count_distinct.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/diff.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/first.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/fix_syntax_errors.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/impute.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/last.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/max.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/median.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/min.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/normalize.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/reformat.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/remove.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/remove_outliers.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/select.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/shift_down.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/shift_up.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/standardize.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/sum.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/row/drop_duplicate.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/row/filter.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/row/remove.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/transformers/transformer_actions/row/sort.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/templates/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/utils/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/utils/block/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/utils/block/convert_content.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/data_preparation/variable_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/errors/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/errors/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/extensions/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/extensions/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/extensions/great_expectations/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/extensions/great_expectations/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/azure_blob_storage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/bigquery.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/file.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/google_cloud_storage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/io_config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/redshift.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/snowflake.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/io/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/airflow.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/backfills/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/backfills/service.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/alembic.ini +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/database_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/errors.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/README.md +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/env.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/script.py.mako +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/053ee2c10d85_add_completed_at.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/067326f43bc3_add_variables_to_pipelinerun.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/1d8e65aeefdd_add_settings_to_pipeline_schedule.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/1f9353eddbc6_add_secrets_table.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/2266370f589b_add_indexes_to_pipeline_run.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/26305e46df52_create_backfills_table.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/3fafd217efa7_add_event_matcher_model.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/52ab80005742_add_variables_to_pipeline_schedule.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/5cd59ec4cf1d_add_passed_sla_to_pipeline_run.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/643b6e65e814_add_unique_indexes_on_authentication_.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/6aecc9bc451c_update_schedule_type_enum.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/7ac6fed06918_add_token_column_to_pipeline_schedule_.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/847ea6602d6f_add_upstream_failed_to_block_run_status.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/84de4cdd6126_add_sla_to_pipeline_schedule.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/8971d4cd5b39_add_event_variables_and_metadata_to_.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/97ff9f55a3c0_create_users_oauth2_applications_and_.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/b01be687e537_add_started_at_to_block_run.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/c07a23ff782b_add_initial_tables.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/migrations/versions/ec5df57a1c60_add_metrics_to_block_runs.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/models/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/models/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/models/oauth.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/models/schedules.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/models/secrets.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/db/process.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/execution_process_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/job_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/metrics/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/metrics/pipeline_run.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/monitor/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/monitor/monitor_stats.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/notification/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/notification/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/notification/sender.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/pipeline_scheduler.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/queue/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/queue/celery_queue.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/queue/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/queue/process_queue.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/queue/queue.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/queue/queue_factory.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/run_status_checker.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/triggers/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/triggers/event_trigger.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/triggers/loop_time_trigger.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/triggers/time_trigger.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/utils/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/orchestration/utils/resources.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/sample_datasets/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/sample_datasets/product_purchases.csv +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/sample_datasets/salary_survey.csv +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/sample_datasets/titanic_survival.csv +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/sample_datasets/user_emails.csv +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/active_kernel.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/blocks.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/clusters.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/errors.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/events.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/integration_sources.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/projects.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/triggers.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/api/v1.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/app.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/client/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/client/mage.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/data/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/data/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/data/models.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/docs_server.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/execution_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/1150.1378afaa474df64a.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/1240.0819f45820d22263.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/1286-a62050b3f897c6be.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/1450.d383f64c169d4278.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/1774-aa51ef1da7217ff9.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/2083-78a438dbdc57d1e4.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/2125-0b537dc53fe71b18.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/2344-5cd452dd1825dabc.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/2481.0454a0e25dc7e027.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/2508.724531e7f9cf5f36.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/2524-6aeb9419acf5d1b4.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/2545.8371b39c898ae92b.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/261.0a24b4ece1d29aa1.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/2626-e7fa4f83f8214c97.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/266.e301071d22592682.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/2714-1e79e9f2e998b544.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/29107295-989a0767a635d9d5.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/3453.992f4b1667e9882c.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/3467.38cd0654ba6f788f.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/3835.df296b4e4078e985.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/3850-6395783d820def1c.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/3873.4b3eace753998412.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/3898.880191695bb05845.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4042.5e16d36209052351.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4092.536ee541241f4538.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4178-9103014b7dae3c49.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4261-6c235b561c91eca3.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4388.04098706f32e69e7.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/440.3ab77942f659ea0c.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4450.79f14f763d55c63e.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4454.13a2404adecaa39e.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4495-4f0340aa82e0c623.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4538-347283088b83c6bf.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4776.753ad29fa0a29a4a.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4804-01a10103ebe26ca8.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/4883.a5bb0edbf8f3cc8f.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/5008.29c2662ecc2b04c7.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/5104.1edcf4437c471dd4.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/5164.857023e800905b6f.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/5477-b439f211b6146a11.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/5729.0f2748e9e6dab951.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/5824.628653557e904674.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/5872-1767c45ee6690ae5.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/5896-10a676bcc86978cc.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6042.c59010de9e699437.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6085-692d2f784c0504f2.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6115.0c85e507543394ea.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6116.871a682ddf535aca.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6166-2ee6aff0ca70b2f0.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6434.10380ee0968636ba.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6443.7b6d2b4e51018184.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6507.d3a17777d2c294e6.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6532-dcc478dab6a58580.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/6958.8f39c585d36737a7.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/7011-81dd8269c4806d26.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/72fdc299.2d5ec188af5d0049.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/739.3d24945544b37e52.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/7400-f4db9b5d41f67f75.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/792.010ca00d79b2112f.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/7947.77be4bec4d47774e.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/7951.fee8b6c27c9ef777.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8018.968bf87c390e3312.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8097.b0345f30a7390c1d.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8180-8de652170ea5ed93.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8256.290ceb269b1ffe26.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/826.75268ee34f93393a.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8277.5003e1d94bb85156.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/839-c0deab1de13a0fba.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8762.dff300f86bef8573.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8789-4f858e520d46973b.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8807.a68c69c8fe0a8c01.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8849.db0d50b4d84b09a6.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8901.21d26d5a1ee473fe.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/8920.5700e380a2999098.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9258.6c6ef544c701a011.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9307.d4baf7aebbcef1f0.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9361.a0820e3069f5ef74.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9363.6b811b4c86277e07.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9386-d4cc11bab74eec8d.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9437.a3c32f45cf9ef69b.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9565-28e1c30511c95c2d.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9566.f8bd24768ed14ecb.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9633.40e5056ca1e2b22a.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9785.5ff26cb26d84d6a1.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9832-f97919376d52e3bf.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9855.c4394a68322be9f8.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/9927.e82a3e1e21990d77.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/bd1a647f.6050372acaa5cc3c.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/framework-7c365855dab1bf41.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/main-bb0dd5375146d7fd.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/_app-7e791bee1e32adec.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/_error-235304e5badb19eb.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/index-e34a68d2f6fe16f2.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/manage-3046bc53d24917c7.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipeline-runs-e64ba4e8b2bfe73c.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/backfills/[...slug]-aac92b9ab9034c1a.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/backfills-5f95bb4c3a2d7d46.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/logs-f8544e3e6ad7c1ff.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runs-dbd14363a06d17c5.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runtime-187456108be8a7e6.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors-675171cfd7d7b346.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/runs/[run]-b2955f0ff960894e.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/runs-f5842a788b0cb80c.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/syncs-e1271453ed0c8d6e.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/triggers/[...slug]-6160e7f91a340354.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/triggers-4e973d4bc0ebcdc1.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]-ca9457e1a6bced4b.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-7446a70bdd8381a5.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/account/profile-f1844beb127841f3.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/preferences-997acba85f777259.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/sync-data-8c903140c99e487c.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/users-d72dfc596e943cc4.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings-d594a66a568306da.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/sign-in-404d934deb8950d5.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/test-85cf18ae78ff535c.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/pages/triggers-783b9526167f1249.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/polyfills-5cd94c89d3acac5f.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/chunks/webpack-bc5e4eb2c1ff587c.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/_next/static/css/d1e8e64d0b07af2f.css +0 -0
- {mage-ai-0.8.38/mage_ai/server/frontend_dist/_next/static/R_cV5sAcMT3qDXIKAGGPe → mage-ai-0.8.39/mage_ai/server/frontend_dist/_next/static/ngCg1gM6urg83y2nV5KHK}/_middlewareManifest.js +0 -0
- {mage-ai-0.8.38/mage_ai/server/frontend_dist/_next/static/R_cV5sAcMT3qDXIKAGGPe → mage-ai-0.8.39/mage_ai/server/frontend_dist/_next/static/ngCg1gM6urg83y2nV5KHK}/_ssgManifest.js +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/favicon.ico +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Bold.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Light.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Medium.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Regular.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Retina.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-SemiBold.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/LICENSE.txt +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Black.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Bold.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Italic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Light.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Medium.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Regular.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Thin.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/LICENSE.txt +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/README.txt +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/RobotoMono-Italic-VariableFont_wght.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/RobotoMono-VariableFont_wght.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Bold.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-BoldItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-ExtraLight.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-ExtraLightItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Italic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Light.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-LightItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Medium.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-MediumItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Regular.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-SemiBold.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-SemiBoldItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Thin.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-ThinItalic.ttf +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/images/backfill.jpg +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/images/banner-shape-purple-peach.jpg +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/images/dashboard-api-key.webp +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/images/extensions/great_expectations/logo.png +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/images/extra.jpg +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/images/monitor.jpg +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/images/run B.jpg +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/images/sessions/abstract.png +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/frontend_dist/vercel.svg +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/kernel_output_parser.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/kernels.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/logger.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/scheduler_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/subscriber.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/utils/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/utils/frontend_renderer.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/utils/output_display.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/server/websocket_server.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/airbyte/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/airbyte/client.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/airbyte/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/airbyte/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/airbyte/exceptions.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/airbyte/server.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/ecs/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/ecs/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/ecs/ecs.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/emr/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/emr/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/emr/emr.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/emr/emr_basics.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/emr/launcher.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/emr/resource_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/events/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/events/events.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/s3/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/s3/s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/secrets_manager/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/aws/secrets_manager/secrets_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/datadog/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/dbt/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/dbt/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/dbt/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/dbt/dbt.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/email/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/email/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/email/email.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/gcp/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/gcp/cloud_run/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/gcp/cloud_run/cloud_run.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/gcp/cloud_run/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/google_chat/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/google_chat/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/google_chat/google_chat.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/hightouch/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/hightouch/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/hightouch/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/hightouch/hightouch.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/k8s/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/k8s/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/k8s/job_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/metaplane/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/metaplane/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/metaplane/metaplane.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/slack/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/slack/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/slack/slack.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/stitch/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/stitch/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/stitch/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/stitch/stitch.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/teams/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/teams/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/teams/teams.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/tracking/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/services/tracking/metrics.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/settings/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/array.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/code.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/conversions.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/custom_types.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/dates.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/environments.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/hash.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/http_client.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/io.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/logger.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/multi.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/parsers.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/retry.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/security.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/strings.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/urls.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/shared/utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sinks/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sinks/amazon_s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sinks/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sinks/kafka.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sinks/kinesis.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sinks/opensearch.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sinks/sink_factory.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sources/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sources/azure_event_hub.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sources/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sources/kafka.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sources/kinesis.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sources/rabbitmq.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/streaming/sources/source_factory.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/api/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/api/operations/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/api/operations/base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/api/operations/test_operations.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/api/operations/test_sessions.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/api/operations/test_users.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/base_test.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/test_clean_column_names.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/test_fix_syntax_error.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/test_impute_values.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/test_reformat_values.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_collinear_columns.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_columns_with_high_empty_rate.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_columns_with_single_value.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_duplicate_rows.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_outliers.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/statistics/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/statistics/test_calculator.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/test_column_type_detector.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/transformer_actions/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/transformer_actions/shared.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/transformer_actions/test_base.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/transformer_actions/test_column.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/transformer_actions/test_custom_actions.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/transformer_actions/test_helpers.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/transformer_actions/test_row.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/transformer_actions/test_utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_cleaner/transformer_actions/test_variable_replacer.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_preparation/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_preparation/models/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_preparation/models/block/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_preparation/models/block/test_sql.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_preparation/models/test_block.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_preparation/models/test_pipeline.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_preparation/models/test_variable.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_preparation/test_templates.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/data_preparation/test_variable_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/factory.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/io/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/io/test_config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/io/test_export_utils.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/db/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/db/test_models.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/notification/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/notification/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/notification/test_config.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/notification/test_sender.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/queue/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/queue/test_process_queue.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/test_execution_process_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/test_job_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/test_pipeline_scheduler.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/triggers/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/triggers/test_event_trigger.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/orchestration/triggers/test_loop_time_trigger.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/services/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/services/aws/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/services/aws/s3/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/services/aws/s3/test_s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/services/datadog/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/services/datadog/test_datadog.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/services/k8s/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/services/k8s/test_job_manager.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/shared/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/shared/test_io.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/shared/test_retry.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/shared/test_security.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sinks/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sinks/test_amazon_s3.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sinks/test_kinesis.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sinks/test_opensearch.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sinks/test_sink_factory.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sources/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sources/test_azure_event_hub.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sources/test_kafka.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sources/test_kinesis.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sources/test_rabbitmq.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/streaming/sources/test_source_factory.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/tests/test_shared.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/utils/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/utils/code.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/utils/logger/__init__.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai/utils/logger/constants.py +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai.egg-info/dependency_links.txt +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai.egg-info/entry_points.txt +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai.egg-info/requires.txt +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/mage_ai.egg-info/top_level.txt +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/pyproject.toml +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/requirements.txt +0 -0
- {mage-ai-0.8.38 → mage-ai-0.8.39}/setup.cfg +0 -0
|
@@ -275,9 +275,9 @@ class BaseSQLDatabase(BaseIO):
|
|
|
275
275
|
"""
|
|
276
276
|
return query_string.strip(' \n\t')
|
|
277
277
|
|
|
278
|
-
def _clean_column_name(self, column_name: str) -> str:
|
|
278
|
+
def _clean_column_name(self, column_name: str, allow_reserved_words: bool = False) -> str:
|
|
279
279
|
col_new = re.sub(r'\W', '_', column_name.lower())
|
|
280
|
-
if col_new.upper() in SQL_RESERVED_WORDS:
|
|
280
|
+
if not allow_reserved_words and col_new.upper() in SQL_RESERVED_WORDS:
|
|
281
281
|
col_new = f'_{col_new}'
|
|
282
282
|
return col_new
|
|
283
283
|
|
|
@@ -2,7 +2,7 @@ from enum import Enum
|
|
|
2
2
|
from mage_ai.shared.utils import clean_name
|
|
3
3
|
from pandas import DataFrame, Series
|
|
4
4
|
from pandas.api.types import infer_dtype
|
|
5
|
-
from typing import Callable, Dict, Mapping
|
|
5
|
+
from typing import Callable, Dict, List, Mapping
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
8
|
Utilities for exporting Python data frames to external databases.
|
|
@@ -31,6 +31,7 @@ class PandasTypes(str, Enum):
|
|
|
31
31
|
DATETIME64 = 'datetime64'
|
|
32
32
|
DECIMAL = 'decimal'
|
|
33
33
|
INTEGER = 'integer'
|
|
34
|
+
INT64 = 'int64'
|
|
34
35
|
EMPTY = 'empty'
|
|
35
36
|
FLOATING = 'floating'
|
|
36
37
|
MIXED = 'mixed'
|
|
@@ -101,6 +102,7 @@ def gen_table_creation_query(
|
|
|
101
102
|
dtypes: Mapping[str, str],
|
|
102
103
|
schema_name: str,
|
|
103
104
|
table_name: str,
|
|
105
|
+
unique_constraints: List[str] = [],
|
|
104
106
|
) -> str:
|
|
105
107
|
"""
|
|
106
108
|
Generates a database table creation query from a data frame.
|
|
@@ -123,4 +125,15 @@ def gen_table_creation_query(
|
|
|
123
125
|
else:
|
|
124
126
|
full_table_name = table_name
|
|
125
127
|
|
|
128
|
+
if unique_constraints:
|
|
129
|
+
unique_constraints_clean = [clean_name(col) for col in unique_constraints]
|
|
130
|
+
unique_constraints_escaped = [f'"{col}"'
|
|
131
|
+
for col in unique_constraints_clean]
|
|
132
|
+
index_name = '_'.join([
|
|
133
|
+
clean_name(full_table_name),
|
|
134
|
+
] + unique_constraints_clean)
|
|
135
|
+
index_name = f'unique{index_name}'[:64]
|
|
136
|
+
query.append(
|
|
137
|
+
f"CONSTRAINT {index_name} UNIQUE ({', '.join(unique_constraints_escaped)})",
|
|
138
|
+
)
|
|
126
139
|
return f'CREATE TABLE {full_table_name} (' + ','.join(query) + ');'
|
|
@@ -3,7 +3,7 @@ from mage_ai.io.export_utils import PandasTypes
|
|
|
3
3
|
from mage_ai.io.base import QUERY_ROW_LIMIT
|
|
4
4
|
from mage_ai.io.sql import BaseSQL
|
|
5
5
|
from pandas import DataFrame, Series
|
|
6
|
-
from typing import Any, IO, Union
|
|
6
|
+
from typing import Any, IO, List, Union
|
|
7
7
|
import json
|
|
8
8
|
import numpy as np
|
|
9
9
|
import pyodbc
|
|
@@ -87,8 +87,11 @@ class MSSQL(BaseSQL):
|
|
|
87
87
|
self,
|
|
88
88
|
cursor: Any,
|
|
89
89
|
df: DataFrame,
|
|
90
|
+
db_dtypes: List[str],
|
|
91
|
+
dtypes: List[str],
|
|
90
92
|
full_table_name: str,
|
|
91
|
-
buffer: Union[IO, None] = None
|
|
93
|
+
buffer: Union[IO, None] = None,
|
|
94
|
+
**kwargs,
|
|
92
95
|
) -> None:
|
|
93
96
|
values_placeholder = ', '.join(["?" for i in range(len(df.columns))])
|
|
94
97
|
values = []
|
|
@@ -5,7 +5,7 @@ from mage_ai.shared.utils import clean_name
|
|
|
5
5
|
from mysql.connector import connect
|
|
6
6
|
from mysql.connector.cursor import MySQLCursor
|
|
7
7
|
from pandas import DataFrame, Series
|
|
8
|
-
from typing import IO, Mapping, Union
|
|
8
|
+
from typing import IO, List, Mapping, Union
|
|
9
9
|
import numpy as np
|
|
10
10
|
|
|
11
11
|
|
|
@@ -47,7 +47,8 @@ class MySQL(BaseSQL):
|
|
|
47
47
|
self,
|
|
48
48
|
dtypes: Mapping[str, str],
|
|
49
49
|
schema_name: str,
|
|
50
|
-
table_name: str
|
|
50
|
+
table_name: str,
|
|
51
|
+
unique_constraints: List[str] = [],
|
|
51
52
|
) -> str:
|
|
52
53
|
query = []
|
|
53
54
|
for cname in dtypes:
|
|
@@ -73,8 +74,11 @@ class MySQL(BaseSQL):
|
|
|
73
74
|
self,
|
|
74
75
|
cursor: MySQLCursor,
|
|
75
76
|
df: DataFrame,
|
|
77
|
+
db_dtypes: List[str],
|
|
78
|
+
dtypes: List[str],
|
|
76
79
|
full_table_name: str,
|
|
77
|
-
buffer: Union[IO, None] = None
|
|
80
|
+
buffer: Union[IO, None] = None,
|
|
81
|
+
**kwargs,
|
|
78
82
|
) -> None:
|
|
79
83
|
values_placeholder = ', '.join(["%s" for i in range(len(df.columns))])
|
|
80
84
|
values = []
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from mage_ai.io.config import BaseConfigLoader, ConfigKey
|
|
2
|
+
from mage_ai.io.constants import UNIQUE_CONFLICT_METHOD_UPDATE
|
|
2
3
|
from mage_ai.io.export_utils import BadConversionError, PandasTypes
|
|
3
4
|
from mage_ai.io.sql import BaseSQL
|
|
4
5
|
from mage_ai.shared.parsers import encode_complex
|
|
@@ -6,12 +7,21 @@ from mage_ai.shared.utils import is_port_in_use
|
|
|
6
7
|
from pandas import DataFrame, Series
|
|
7
8
|
from psycopg2 import connect, _psycopg
|
|
8
9
|
from sshtunnel import SSHTunnelForwarder
|
|
9
|
-
from typing import
|
|
10
|
+
from typing import IO, List, Union
|
|
10
11
|
import numpy as np
|
|
11
12
|
import pandas as pd
|
|
12
13
|
import simplejson
|
|
13
14
|
|
|
14
15
|
|
|
16
|
+
JSON_SERIALIZABLE_TYPES = frozenset([
|
|
17
|
+
PandasTypes.DATE,
|
|
18
|
+
PandasTypes.DATETIME,
|
|
19
|
+
PandasTypes.DATETIME64,
|
|
20
|
+
PandasTypes.OBJECT,
|
|
21
|
+
PandasTypes.TIME,
|
|
22
|
+
])
|
|
23
|
+
|
|
24
|
+
|
|
15
25
|
class Postgres(BaseSQL):
|
|
16
26
|
"""
|
|
17
27
|
Handles data transfer between a PostgreSQL database and the Mage app.
|
|
@@ -159,9 +169,9 @@ class Postgres(BaseSQL):
|
|
|
159
169
|
column_type = None
|
|
160
170
|
|
|
161
171
|
if len(values) >= 1:
|
|
162
|
-
value = values[0]
|
|
163
172
|
column_type = 'JSONB'
|
|
164
173
|
|
|
174
|
+
value = values[0]
|
|
165
175
|
if type(value) is list:
|
|
166
176
|
if len(value) >= 1:
|
|
167
177
|
item = value[0]
|
|
@@ -204,7 +214,7 @@ class Postgres(BaseSQL):
|
|
|
204
214
|
return 'bytea'
|
|
205
215
|
elif dtype in (PandasTypes.FLOATING, PandasTypes.DECIMAL, PandasTypes.MIXED_INTEGER_FLOAT):
|
|
206
216
|
return 'double precision'
|
|
207
|
-
elif dtype == PandasTypes.INTEGER:
|
|
217
|
+
elif dtype == PandasTypes.INTEGER or dtype == PandasTypes.INT64:
|
|
208
218
|
max_int, min_int = column.max(), column.min()
|
|
209
219
|
if np.int16(max_int) == max_int and np.int16(min_int) == min_int:
|
|
210
220
|
return 'smallint'
|
|
@@ -229,9 +239,21 @@ class Postgres(BaseSQL):
|
|
|
229
239
|
self,
|
|
230
240
|
cursor: _psycopg.cursor,
|
|
231
241
|
df: DataFrame,
|
|
242
|
+
db_dtypes: List[str],
|
|
243
|
+
dtypes: List[str],
|
|
232
244
|
full_table_name: str,
|
|
233
|
-
buffer: Union[IO, None] = None
|
|
245
|
+
buffer: Union[IO, None] = None,
|
|
246
|
+
allow_reserved_words: bool = False,
|
|
247
|
+
unique_conflict_method: str = None,
|
|
248
|
+
unique_constraints: List[str] = None,
|
|
234
249
|
) -> None:
|
|
250
|
+
def clean_array_value(val):
|
|
251
|
+
if val is None or type(val) is not str or len(val) < 2:
|
|
252
|
+
return val
|
|
253
|
+
if val[0] == '[' and val[-1] == ']':
|
|
254
|
+
return '{' + val[1:-1] + '}'
|
|
255
|
+
return val
|
|
256
|
+
|
|
235
257
|
df_ = df.copy()
|
|
236
258
|
columns = df_.columns
|
|
237
259
|
|
|
@@ -239,28 +261,49 @@ class Postgres(BaseSQL):
|
|
|
239
261
|
df_col_dropna = df_[col].dropna()
|
|
240
262
|
if df_col_dropna.count() == 0:
|
|
241
263
|
continue
|
|
242
|
-
if
|
|
264
|
+
if dtypes[col] in JSON_SERIALIZABLE_TYPES \
|
|
265
|
+
or (df_[col].dtype == PandasTypes.OBJECT and
|
|
266
|
+
type(df_col_dropna.iloc[0]) != str):
|
|
243
267
|
df_[col] = df_[col].apply(lambda x: simplejson.dumps(
|
|
244
268
|
x,
|
|
245
269
|
default=encode_complex,
|
|
246
270
|
ignore_nan=True,
|
|
247
271
|
))
|
|
272
|
+
if '[]' in db_dtypes[col]:
|
|
273
|
+
df_[col] = df_[col].apply(lambda x: clean_array_value(x))
|
|
248
274
|
|
|
249
|
-
|
|
250
|
-
buffer,
|
|
251
|
-
header=False,
|
|
252
|
-
index=False,
|
|
253
|
-
na_rep='',
|
|
254
|
-
)
|
|
275
|
+
values = []
|
|
255
276
|
|
|
256
|
-
|
|
277
|
+
for _, row in df_.iterrows():
|
|
278
|
+
t = tuple(row)
|
|
279
|
+
if len(t) == 1:
|
|
280
|
+
value = f'({str(t[0])})'
|
|
281
|
+
else:
|
|
282
|
+
value = str(t)
|
|
283
|
+
values.append(value.replace('None', 'NULL'))
|
|
284
|
+
values_string = ', '.join(values)
|
|
285
|
+
insert_columns = ', '.join([f'"{col}"'for col in columns])
|
|
286
|
+
|
|
287
|
+
commands = [
|
|
288
|
+
f'INSERT INTO {full_table_name} ({insert_columns})',
|
|
289
|
+
f'VALUES {values_string}',
|
|
290
|
+
]
|
|
291
|
+
if unique_constraints and unique_conflict_method:
|
|
292
|
+
unique_constraints = \
|
|
293
|
+
[f'"{self._clean_column_name(col, allow_reserved_words=allow_reserved_words)}"'
|
|
294
|
+
for col in unique_constraints]
|
|
295
|
+
columns_cleaned = \
|
|
296
|
+
[f'"{self._clean_column_name(col, allow_reserved_words=allow_reserved_words)}"'
|
|
297
|
+
for col in columns]
|
|
257
298
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
)
|
|
266
|
-
|
|
299
|
+
commands.append(f"ON CONFLICT ({', '.join(unique_constraints)})")
|
|
300
|
+
if UNIQUE_CONFLICT_METHOD_UPDATE == unique_conflict_method:
|
|
301
|
+
update_command = [f'{col} = EXCLUDED.{col}' for col in columns_cleaned]
|
|
302
|
+
commands.append(
|
|
303
|
+
f"DO UPDATE SET {', '.join(update_command)}",
|
|
304
|
+
)
|
|
305
|
+
else:
|
|
306
|
+
commands.append('DO NOTHING')
|
|
307
|
+
cursor.execute(
|
|
308
|
+
'\n'.join(commands)
|
|
309
|
+
)
|
|
@@ -43,9 +43,15 @@ class BaseSQL(BaseSQLConnection):
|
|
|
43
43
|
self,
|
|
44
44
|
dtypes: Mapping[str, str],
|
|
45
45
|
schema_name: str,
|
|
46
|
-
table_name: str
|
|
46
|
+
table_name: str,
|
|
47
|
+
unique_constraints: List[str] = [],
|
|
47
48
|
) -> str:
|
|
48
|
-
return gen_table_creation_query(
|
|
49
|
+
return gen_table_creation_query(
|
|
50
|
+
dtypes,
|
|
51
|
+
schema_name,
|
|
52
|
+
table_name,
|
|
53
|
+
unique_constraints=unique_constraints,
|
|
54
|
+
)
|
|
49
55
|
|
|
50
56
|
def build_create_table_as_command(
|
|
51
57
|
self,
|
|
@@ -80,6 +86,8 @@ class BaseSQL(BaseSQLConnection):
|
|
|
80
86
|
self,
|
|
81
87
|
cursor,
|
|
82
88
|
df: DataFrame,
|
|
89
|
+
db_dtypes: List[str],
|
|
90
|
+
dtypes: List[str],
|
|
83
91
|
full_table_name: str,
|
|
84
92
|
buffer: Union[IO, None] = None
|
|
85
93
|
) -> None:
|
|
@@ -183,6 +191,9 @@ class BaseSQL(BaseSQLConnection):
|
|
|
183
191
|
query_string: Union[str, None] = None,
|
|
184
192
|
drop_table_on_replace: bool = False,
|
|
185
193
|
cascade_on_drop: bool = False,
|
|
194
|
+
allow_reserved_words: bool = False,
|
|
195
|
+
unique_conflict_method: str = None,
|
|
196
|
+
unique_constraints: List[str] = None,
|
|
186
197
|
) -> None:
|
|
187
198
|
"""
|
|
188
199
|
Exports dataframe to the connected database from a Pandas data frame. If table doesn't
|
|
@@ -221,7 +232,10 @@ class BaseSQL(BaseSQLConnection):
|
|
|
221
232
|
df = clean_df_for_export(df, self.clean, dtypes)
|
|
222
233
|
|
|
223
234
|
# Clean column names
|
|
224
|
-
col_mapping = {col: self._clean_column_name(
|
|
235
|
+
col_mapping = {col: self._clean_column_name(
|
|
236
|
+
col,
|
|
237
|
+
allow_reserved_words=allow_reserved_words)
|
|
238
|
+
for col in df.columns}
|
|
225
239
|
df = df.rename(columns=col_mapping)
|
|
226
240
|
dtypes = infer_dtypes(df)
|
|
227
241
|
|
|
@@ -263,12 +277,27 @@ class BaseSQL(BaseSQLConnection):
|
|
|
263
277
|
)
|
|
264
278
|
cur.execute(query)
|
|
265
279
|
else:
|
|
280
|
+
db_dtypes = {col: self.get_type(df[col], dtypes[col]) for col in dtypes}
|
|
266
281
|
if should_create_table:
|
|
267
|
-
|
|
268
|
-
|
|
282
|
+
query = self.build_create_table_command(
|
|
283
|
+
db_dtypes,
|
|
284
|
+
schema_name,
|
|
285
|
+
table_name,
|
|
286
|
+
unique_constraints=unique_constraints,
|
|
287
|
+
)
|
|
269
288
|
cur.execute(query)
|
|
270
289
|
|
|
271
|
-
self.upload_dataframe(
|
|
290
|
+
self.upload_dataframe(
|
|
291
|
+
cur,
|
|
292
|
+
df,
|
|
293
|
+
db_dtypes,
|
|
294
|
+
dtypes,
|
|
295
|
+
full_table_name,
|
|
296
|
+
buffer,
|
|
297
|
+
allow_reserved_words=allow_reserved_words,
|
|
298
|
+
unique_conflict_method=unique_conflict_method,
|
|
299
|
+
unique_constraints=unique_constraints,
|
|
300
|
+
)
|
|
272
301
|
self.conn.commit()
|
|
273
302
|
|
|
274
303
|
if verbose:
|
|
@@ -15,7 +15,7 @@ from pandas import DataFrame, Series
|
|
|
15
15
|
from trino.auth import BasicAuthentication
|
|
16
16
|
from trino.dbapi import Connection, Cursor as CursorParent
|
|
17
17
|
from trino.transaction import IsolationLevel
|
|
18
|
-
from typing import IO, Mapping, Union
|
|
18
|
+
from typing import IO, List, Mapping, Union
|
|
19
19
|
import pandas as pd
|
|
20
20
|
|
|
21
21
|
|
|
@@ -86,7 +86,8 @@ class Trino(BaseSQL):
|
|
|
86
86
|
self,
|
|
87
87
|
dtypes: Mapping[str, str],
|
|
88
88
|
schema_name: str,
|
|
89
|
-
table_name: str
|
|
89
|
+
table_name: str,
|
|
90
|
+
unique_constraints: List[str] = [],
|
|
90
91
|
):
|
|
91
92
|
query = []
|
|
92
93
|
for cname in dtypes:
|
|
@@ -123,8 +124,11 @@ class Trino(BaseSQL):
|
|
|
123
124
|
self,
|
|
124
125
|
cursor: Cursor,
|
|
125
126
|
df: DataFrame,
|
|
127
|
+
db_dtypes: List[str],
|
|
128
|
+
dtypes: List[str],
|
|
126
129
|
full_table_name: str,
|
|
127
|
-
buffer: Union[IO, None] = None
|
|
130
|
+
buffer: Union[IO, None] = None,
|
|
131
|
+
**kwargs,
|
|
128
132
|
) -> None:
|
|
129
133
|
values = []
|
|
130
134
|
for _, row in df.iterrows():
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/_next/static/css/d1e8e64d0b07af2f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d1e8e64d0b07af2f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/_next/static/chunks/webpack-bc5e4eb2c1ff587c.js" defer=""></script><script src="/_next/static/chunks/framework-7c365855dab1bf41.js" defer=""></script><script src="/_next/static/chunks/main-bb0dd5375146d7fd.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7e791bee1e32adec.js" defer=""></script><script src="/_next/static/chunks/pages/_error-235304e5badb19eb.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/_next/static/css/d1e8e64d0b07af2f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d1e8e64d0b07af2f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/_next/static/chunks/webpack-bc5e4eb2c1ff587c.js" defer=""></script><script src="/_next/static/chunks/framework-7c365855dab1bf41.js" defer=""></script><script src="/_next/static/chunks/main-bb0dd5375146d7fd.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7e791bee1e32adec.js" defer=""></script><script src="/_next/static/chunks/pages/_error-235304e5badb19eb.js" defer=""></script><script src="/_next/static/ngCg1gM6urg83y2nV5KHK/_buildManifest.js" defer=""></script><script src="/_next/static/ngCg1gM6urg83y2nV5KHK/_ssgManifest.js" defer=""></script><script src="/_next/static/ngCg1gM6urg83y2nV5KHK/_middlewareManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
|
|
2
2
|
*,*::before,*::after{-webkit-box-sizing:inherit;box-sizing:inherit;}/*!sc*/
|
|
3
3
|
data-styled.g4[id="sc-global-czSCUT1"]{content:"sc-global-czSCUT1,"}/*!sc*/
|
|
4
4
|
.kOVcuR .Toastify__toast-container{margin-top:24px;padding:0 !important;width:500px !important;}/*!sc*/
|
|
@@ -19,4 +19,4 @@ data-styled.g5[id="ToastWrapper-sc-1a33ph1-0"]{content:"kOVcuR,"}/*!sc*/
|
|
|
19
19
|
.next-error-h1 {
|
|
20
20
|
border-right: 1px solid rgba(255, 255, 255, .3);
|
|
21
21
|
}
|
|
22
|
-
}</style><h1 class="next-error-h1" style="display:inline-block;margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404<!-- --></h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.<!-- --></h2></div></div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"#FFB9FC","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","table":"#292A2F"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBorder":"#2E3036","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(106, 117, 139, 0.4)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/_error","query":{},"buildId":"
|
|
22
|
+
}</style><h1 class="next-error-h1" style="display:inline-block;margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404<!-- --></h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.<!-- --></h2></div></div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"#FFB9FC","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","table":"#292A2F"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBorder":"#2E3036","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(106, 117, 139, 0.4)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/_error","query":{},"buildId":"ngCg1gM6urg83y2nV5KHK","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/_next/static/css/d1e8e64d0b07af2f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d1e8e64d0b07af2f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/_next/static/chunks/webpack-bc5e4eb2c1ff587c.js" defer=""></script><script src="/_next/static/chunks/framework-7c365855dab1bf41.js" defer=""></script><script src="/_next/static/chunks/main-bb0dd5375146d7fd.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7e791bee1e32adec.js" defer=""></script><script src="/_next/static/chunks/pages/_error-235304e5badb19eb.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/_next/static/css/d1e8e64d0b07af2f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d1e8e64d0b07af2f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/_next/static/chunks/webpack-bc5e4eb2c1ff587c.js" defer=""></script><script src="/_next/static/chunks/framework-7c365855dab1bf41.js" defer=""></script><script src="/_next/static/chunks/main-bb0dd5375146d7fd.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7e791bee1e32adec.js" defer=""></script><script src="/_next/static/chunks/pages/_error-235304e5badb19eb.js" defer=""></script><script src="/_next/static/ngCg1gM6urg83y2nV5KHK/_buildManifest.js" defer=""></script><script src="/_next/static/ngCg1gM6urg83y2nV5KHK/_ssgManifest.js" defer=""></script><script src="/_next/static/ngCg1gM6urg83y2nV5KHK/_middlewareManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
|
|
2
2
|
*,*::before,*::after{-webkit-box-sizing:inherit;box-sizing:inherit;}/*!sc*/
|
|
3
3
|
data-styled.g4[id="sc-global-czSCUT1"]{content:"sc-global-czSCUT1,"}/*!sc*/
|
|
4
4
|
.kOVcuR .Toastify__toast-container{margin-top:24px;padding:0 !important;width:500px !important;}/*!sc*/
|
|
@@ -19,4 +19,4 @@ data-styled.g5[id="ToastWrapper-sc-1a33ph1-0"]{content:"kOVcuR,"}/*!sc*/
|
|
|
19
19
|
.next-error-h1 {
|
|
20
20
|
border-right: 1px solid rgba(255, 255, 255, .3);
|
|
21
21
|
}
|
|
22
|
-
}</style><h1 class="next-error-h1" style="display:inline-block;margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404<!-- --></h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.<!-- --></h2></div></div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"#FFB9FC","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","table":"#292A2F"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBorder":"#2E3036","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(106, 117, 139, 0.4)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/_error","query":{},"buildId":"
|
|
22
|
+
}</style><h1 class="next-error-h1" style="display:inline-block;margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404<!-- --></h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.<!-- --></h2></div></div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"#FFB9FC","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","table":"#292A2F"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBorder":"#2E3036","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(106, 117, 139, 0.4)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/_error","query":{},"buildId":"ngCg1gM6urg83y2nV5KHK","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5141],{33699:function(n,t,e){e.d(t,{Z:function(){return k}});var r=e(89565),i=e.n(r),o=e(82684),a=e(47999),c=e(82635),u=e(19711),s=e(9518),l=e(23831),d=e(49125),f=e(37391),p=(0,s.css)([""," ",""],(function(n){return!n.width&&"\n width: 100%;\n "}),(function(n){return n.width&&"\n width: ".concat(n.width,"px;\n ")})),g=s.default.div.withConfig({displayName:"indexstyle__ContainerStyle",componentId:"sc-11d4rgl-0"})([""," "," height:100%;overflow:auto;position:absolute;",""],p,f.w5,(function(n){return"\n background-color: ".concat((n.theme.background||l.Z.background).codeTextarea,";\n ")})),h=s.default.div.withConfig({displayName:"indexstyle__InnerStyle",componentId:"sc-11d4rgl-1"})([""," padding:","px;"],p,d.cd*d.iI),y=s.default.div.withConfig({displayName:"indexstyle__LineStyle",componentId:"sc-11d4rgl-2"})(["height:","px;"],20),v=(0,s.css)(["@keyframes cursor-blink{0%{opacity:0;}}::before{","}::after{","}"],(function(n){return n.focusBeginning&&"\n position: absolute;\n background-color: ".concat((n.theme.accent||l.Z.accent).warning,';\n content: "";\n display: inline-block;\n height: ').concat(20,"px;\n width: ").concat(d.iI,"px;\n opacity: 0.3;\n ")}),(function(n){return n.focused&&"\n background-color: ".concat((n.theme.accent||l.Z.accent).warning,';\n content: "";\n display: inline-block;\n height: ').concat(20,"px;\n width: ").concat(d.iI,"px;\n opacity: 0.3;\n ")})),m=s.default.div.withConfig({displayName:"indexstyle__InputStyle",componentId:"sc-11d4rgl-3"})(["align-items:center;display:flex;gap:2px;",""],v),b=s.default.span.withConfig({displayName:"indexstyle__CharacterStyle",componentId:"sc-11d4rgl-4"})([""," ::after{","}"],v,(function(n){return n.focused&&"\n position: absolute;\n "})),S=e(16115),x=e(51504),T=e(66653),w=e(41150),P=e(28598);function E(n,t){var e="undefined"!==typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!e){if(Array.isArray(n)||(e=function(n,t){if(!n)return;if("string"===typeof n)return I(n,t);var e=Object.prototype.toString.call(n).slice(8,-1);"Object"===e&&n.constructor&&(e=n.constructor.name);if("Map"===e||"Set"===e)return Array.from(n);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return I(n,t)}(n))||t&&n&&"number"===typeof n.length){e&&(n=e);var r=0,i=function(){};return{s:i,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,c=!1;return{s:function(){e=e.call(n)},n:function(){var n=e.next();return a=n.done,n},e:function(n){c=!0,o=n},f:function(){try{a||null==e.return||e.return()}finally{if(c)throw o}}}}function I(n,t){(null==t||t>n.length)&&(t=n.length);for(var e=0,r=new Array(t);e<t;e++)r[e]=n[e];return r}var k=function(n){var t=n.interruptKernel,e=n.lastMessage,r=n.onFocus,s=n.sendMessage,l=n.uuid,d=void 0===l?"terminal":l,f=n.width,p=(0,o.useRef)(null),v=(0,o.useRef)(null),I=(0,o.useState)(""),k=I[0],A=I[1],N=(0,o.useState)(0),C=N[0],_=N[1],j=(0,o.useState)(""),O=j[0],M=j[1],R=(0,o.useState)(0),Z=R[0],G=R[1],U=(0,o.useState)([]),X=U[0],F=U[1],Y=(0,o.useState)(!1),D=Y[0],L=Y[1],K=(0,o.useState)([]),Q=(K[0],K[1]),B=(0,o.useState)(),H=B[0],z=B[1];(0,o.useEffect)((function(){if(e){var n=JSON.parse(e.data);z((function(t){var e=t||"";return"stdout"===n[0]?e+n[1]:e}))}}),[e,d]);var J=(0,o.useMemo)((function(){return H?H.split("\n").filter((function(n){return!n.includes("# Mage terminal settings command")})).map((function(n){return{data:n,type:c.Gi.TEXT}})):[]}),[H]);(0,o.useEffect)((function(){if(p.current&&v.current){var n=v.current.getBoundingClientRect().height;p.current.scrollTo(0,n)}}),[J,p,v]);var V=(0,w.y)(),q=V.registerOnKeyDown,$=V.setDisableGlobalKeyboardShortcuts,W=V.unregisterOnKeyDown;(0,o.useEffect)((function(){return function(){W(d)}}),[W,d]);var nn=(0,o.useCallback)((function(){G((function(n){return n>0?n-1:n}))}),[]),tn=(0,o.useCallback)((function(){G((function(n){return n<=k.length?n+1:n}))}),[k]),en=(0,o.useCallback)((function(n){var t=(null===n||void 0===n?void 0:n.split(/\n/))||[];if(t.length>1){var e=t.slice(0,-1);e[0]=k+e[0];var r=e.map((function(n,t){return{command:0===t,data:n,type:c.Gi.TEXT}}));_(X.length+e.length),F((function(n){return n.concat(e)})),Q((function(n){return n.concat(r)})),M((function(n){return n+e.join("\n")}));var i=(t.slice(-1)[0]||"").trim();A(i),G(i.length)}else A((function(t){return t+n})),G(k.length+n.length)}),[k,X]);q(d,(function(n,t,e){var r=n.code,i=n.key;if(D)if((0,T.j)(n),(0,x.y)([S.PQ,S.VS],t)){var o=O+k;(null===o||void 0===o?void 0:o.length)>=0&&(s(JSON.stringify(["stdin",o])),s(JSON.stringify(["stdin","\x03"])),G(0)),M(""),A("")}else if(S.Qj!==r||t[S.zX])if((0,x.y)([S.QK],t))nn();else if((0,x.y)([S.DY],t))tn();else if((0,x.y)([S.Bu],t)){if(X.length>=1){var a,c=Math.max(0,C-1);A(X[c]),_(c),G((null===(a=X[c])||void 0===a?void 0:a.length)||0)}}else if((0,x.y)([S.kD],t)){if(X.length>=1){var u=Math.min(X.length,C+1),l=X[u]||"";A(l),_(u),G(l.length)}}else if((0,x.y)([S.Uq],t)){var d=O+k;s(JSON.stringify(["stdin",d])),s(JSON.stringify(["stdin","\r"])),(null===d||void 0===d?void 0:d.length)>=2&&(_(X.length+1),F((function(n){return n.concat(k)})),G(0)),M(""),A("")}else if((0,x.y)([S.zX,S.VS],t))navigator.clipboard.writeText(window.getSelection().toString());else if((0,x.y)([S.zX,S.Pd],t)||(0,x.y)([S.PQ,S.Pd],t)){var f,p,g,h,y;"undefined"===typeof(null===(f=navigator)||void 0===f?void 0:f.clipboard)?alert('Clipboard pasting is not allowed in insecure contexts. If your Mage deployment is not secure but you still want to use clipboard paste, you can override this setting (which should only be done temporarily) on Chrome browsers by going to "chrome://flags/#unsafely-treat-insecure-origin-as-secure", adding your origin to "Insecure origins treated as secure", and enabling that setting.'):null!==(p=navigator)&&void 0!==p&&null!==(g=p.clipboard)&&void 0!==g&&g.readText?navigator.clipboard.readText().then(en).catch((function(n){return alert("".concat(n,'\n For Chrome, users need to allow clipboard permissions for this site under "Privacy and security" -> "Site settings".\n For Safari, users need to allow the clipboard paste by clicking "Paste" in the context menu that appears.'))})):null!==(h=navigator)&&void 0!==h&&null!==(y=h.clipboard)&&void 0!==y&&y.read?navigator.clipboard.read().then((function(n){var t,e=E(n);try{for(e.s();!(t=e.n()).done;){var r,i=t.value,o=E(i.types);try{for(o.s();!(r=o.n()).done;){var a=r.value;if("text/plain"===a)return i.getType(a)}}catch(c){o.e(c)}finally{o.f()}}}catch(c){e.e(c)}finally{e.f()}})).then((function(n){return n.text()})).then(en).catch((function(n){return alert("".concat(n,'\n For Firefox, users need to allow clipboard paste by setting the "dom.events.asyncClipboard.read" preference in "about:config" to "true" and clicking "Paste" in the context menu that appears.'))})):alert('If pasting is not working properly, you may need to adjust some settings in your browser.\n\n For Firefox, users need to allow clipboard paste by setting both the "dom.events.asyncClipboard.clipboardItem" and "dom.events.asyncClipboard.read" preferences in "about:config" to "true" and clicking "Paste" in the context menu that appears.\n For Chrome, users need to allow clipboard permissions for this site under "Privacy and security" -> "Site settings".\n For Safari, users need to allow the clipboard paste by clicking "Paste" in the context menu that appears.\n')}else t[S.zX]||t[S.PQ]||1!==i.length||(A((function(n){return n.slice(0,Z)+i+n.slice(Z)})),tn());else{var v=Math.max(0,Z-1);A((function(n){return n.slice(0,v)+n.slice(Z)})),G((function(n){return Math.max(0,n-1)}))}}),[k,X,C,D,t,A,F,_,Q,d]);var rn=(0,o.useMemo)((function(){var n;return null===(n=J[J.length-1])||void 0===n?void 0:n.data}),[J]);return(0,P.jsx)(g,{ref:p,width:f,children:(0,P.jsx)(a.Z,{isOpen:!0,onClick:function(){null===r||void 0===r||r(),L(!0),$(!0)},onClickOutside:function(){L(!1),$(!1)},style:{minHeight:"100%"},children:(0,P.jsxs)(h,{ref:v,width:f,children:[null===J||void 0===J?void 0:J.reduce((function(n,t,e){if(e==J.length-1)return n;var r=t||{},o=r.command,a=r.data,s=r.type,l=[];l=(l=Array.isArray(a)?a:[a]).filter((function(n){return n}));var d=[];return l.forEach((function(n,t){var r;if(c.jU.includes(s)&&(r=(0,P.jsx)(u.ZP,{monospace:!0,noWrapping:!0,pre:!0,children:n&&(0,P.jsx)(i(),{children:n})})),r){var a="command-".concat(e,"-").concat(t,"-").concat(n);o||d.push((0,P.jsx)(y,{children:r},a))}})),n.concat(d)}),[]),(0,P.jsx)(m,{focused:D&&(0===(null===k||void 0===k?void 0:k.length)||Z>(null===k||void 0===k?void 0:k.length)),children:(0,P.jsxs)(u.ZP,{monospace:!0,children:[(0,P.jsx)(u.ZP,{inline:!0,monospace:!0,children:rn&&(0,P.jsx)(i(),{children:rn})}),null===k||void 0===k?void 0:k.split("").map((function(n,t){return(0,P.jsxs)(b,{focusBeginning:D&&0===Z&&0===t,focused:D&&Z===t+1,children:[" "===n&&(0,P.jsx)(P.Fragment,{children:"\xa0"})," "!==n&&n]},"command-".concat(t,"-").concat(n))}))]})})]})})})}},82635:function(n,t,e){var r,i;e.d(t,{Gi:function(){return i},jU:function(){return a},uF:function(){return r}}),function(n){n.BUSY="busy",n.IDLE="idle",n.QUEUED="queued"}(r||(r={})),function(n){n.IMAGE_PNG="image/png",n.PROGRESS="progress",n.TABLE="table",n.TEXT="text",n.TEXT_HTML="text/html",n.TEXT_PLAIN="text/plain"}(i||(i={}));var o,a=[i.TEXT,i.TEXT_PLAIN];!function(n){n.DISPLAY_DATA="display_data",n.STATUS="status",n.STREAM="stream",n.STREAM_PIPELINE="stream_pipeline"}(o||(o={}))},98781:function(n,t,e){e.d(t,{$1:function(){return u},G7:function(){return l},QK:function(){return c},a_:function(){return d},qL:function(){return o},r0:function(){return s}});var r,i,o,a=e(82394);!function(n){n.INTEGRATION="integration",n.PYTHON="python",n.PYSPARK="pyspark",n.STREAMING="streaming"}(o||(o={}));var c,u,s,l=(r={},(0,a.Z)(r,o.INTEGRATION,"Integration"),(0,a.Z)(r,o.PYTHON,"Standard"),(0,a.Z)(r,o.PYSPARK,"PySpark"),(0,a.Z)(r,o.STREAMING,"Streaming"),r);!function(n){n.ACTIVE="active",n.INACTIVE="inactive",n.NO_SCHEDULES="no_schedules"}(c||(c={})),function(n){n.GROUP="group_by",n.STATUS="status[]",n.TYPE="type[]"}(u||(u={})),function(n){n.STATUS="status",n.TYPE="type"}(s||(s={}));var d=(i={},(0,a.Z)(i,o.PYTHON,"python3"),(0,a.Z)(i,o.PYSPARK,"pysparkkernel"),i)},51504:function(n,t,e){e.d(t,{y:function(){return o}});var r=e(75582),i=e(16115);function o(n,t){var e=n.map((function(n){return String(n)})),o=n.includes(i.PQ),a=n.includes(i.zX),c=n.includes(i.XR),u=i.xU.map((function(n){return String(n)})),s=i.vk.map((function(n){return String(n)})),l=i.Tr.map((function(n){return String(n)})),d=Object.entries(t).find((function(n){var t=(0,r.Z)(n,2),i=t[0];return t[1]&&!e.includes(String(i))&&(!a||!s.includes(String(i)))&&(!o||!u.includes(String(i)))&&(!c||!l.includes(String(i)))}));return n.every((function(n){return t[n]}))&&!d}}}]);
|