mage-ai 0.9.75__py3-none-any.whl → 0.9.77__py3-none-any.whl
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/api/policies/PipelineSchedulePolicy.py +1 -0
- mage_ai/api/presenters/PipelineSchedulePresenter.py +11 -2
- mage_ai/api/resources/GitFileResource.py +8 -0
- mage_ai/api/resources/PipelineScheduleResource.py +11 -3
- mage_ai/api/resources/PipelineTriggerResource.py +3 -1
- mage_ai/api/resources/SessionResource.py +2 -2
- mage_ai/api/resources/SyncResource.py +1 -1
- mage_ai/api/resources/UserResource.py +1 -1
- mage_ai/cli/main.py +6 -1
- mage_ai/data_integrations/destinations/constants.py +2 -0
- mage_ai/data_integrations/sources/constants.py +2 -0
- mage_ai/data_preparation/executors/block_executor.py +8 -3
- mage_ai/data_preparation/executors/pipeline_executor.py +35 -19
- mage_ai/data_preparation/models/block/__init__.py +29 -23
- mage_ai/data_preparation/models/block/dbt/dbt_adapter.py +20 -8
- mage_ai/data_preparation/models/block/dynamic/constants.py +0 -1
- mage_ai/data_preparation/models/block/dynamic/counter.py +1 -3
- mage_ai/data_preparation/models/block/outputs.py +1 -1
- mage_ai/data_preparation/models/block/r/__init__.py +16 -5
- mage_ai/data_preparation/models/block/sql/__init__.py +2 -0
- mage_ai/data_preparation/models/block/sql/mssql.py +8 -0
- mage_ai/data_preparation/models/block/sql/utils/shared.py +6 -2
- mage_ai/data_preparation/models/constants.py +3 -0
- mage_ai/data_preparation/models/pipeline.py +1 -1
- mage_ai/data_preparation/storage/local_storage.py +4 -1
- mage_ai/data_preparation/templates/constants.py +7 -0
- mage_ai/data_preparation/templates/data_loaders/airtable.py +28 -0
- mage_ai/data_preparation/templates/repo/io_config.yaml +2 -0
- mage_ai/io/airtable.py +104 -0
- mage_ai/io/base.py +1 -0
- mage_ai/io/bigquery.py +36 -0
- mage_ai/io/config.py +6 -0
- mage_ai/io/mssql.py +21 -9
- mage_ai/io/mysql.py +6 -1
- mage_ai/io/postgres.py +3 -0
- mage_ai/io/redshift.py +13 -0
- mage_ai/io/sql.py +1 -0
- mage_ai/orchestration/db/__init__.py +20 -0
- mage_ai/orchestration/db/migrations/versions/39d36f1dab73_create_genericjob.py +47 -0
- mage_ai/orchestration/db/models/oauth.py +2 -1
- mage_ai/orchestration/db/models/schedules.py +107 -5
- mage_ai/orchestration/db/models/secrets.py +11 -1
- mage_ai/orchestration/job_manager.py +19 -0
- mage_ai/orchestration/metrics/pipeline_run.py +1 -1
- mage_ai/orchestration/notification/sender.py +2 -2
- mage_ai/orchestration/pipeline_scheduler_original.py +150 -6
- mage_ai/orchestration/pipeline_scheduler_project_platform.py +4 -5
- mage_ai/orchestration/queue/config.py +11 -1
- mage_ai/orchestration/queue/process_queue.py +2 -0
- mage_ai/orchestration/utils/distributed_lock.py +8 -1
- mage_ai/server/api/base.py +41 -0
- mage_ai/server/api/constants.py +1 -0
- mage_ai/server/api/triggers.py +9 -0
- mage_ai/server/constants.py +1 -1
- mage_ai/server/frontend_dist/404.html +2 -2
- mage_ai/server/frontend_dist/_next/static/chunks/449-5e2253c6aba42557.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/_app-782dd4a6b13e1c42.js +2 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/users-5db54821a3059c69.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/overview-f65416f6dbe30ad3.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/settings-03d9bca3bc5e6088.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-d25d07db166cbb04.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/users-fa61dc6c1370e6a5.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/{webpack-0bc44da590c7cf85.js → webpack-b9a067f3bd0a3a05.js} +1 -1
- mage_ai/server/frontend_dist/_next/static/{38-PtskJFUTYUpRhT1qF_ → qR0jauUABqPaFMjUsYeoG}/_buildManifest.js +1 -1
- mage_ai/server/frontend_dist/block-layout.html +2 -2
- mage_ai/server/frontend_dist/compute.html +2 -2
- mage_ai/server/frontend_dist/files.html +2 -2
- mage_ai/server/frontend_dist/global-data-products/[...slug].html +2 -2
- mage_ai/server/frontend_dist/global-data-products.html +2 -2
- mage_ai/server/frontend_dist/global-hooks/[...slug].html +2 -2
- mage_ai/server/frontend_dist/global-hooks.html +2 -2
- mage_ai/server/frontend_dist/index.html +2 -2
- mage_ai/server/frontend_dist/manage/files.html +2 -2
- mage_ai/server/frontend_dist/manage/overview.html +2 -2
- mage_ai/server/frontend_dist/manage/pipeline-runs.html +2 -2
- mage_ai/server/frontend_dist/manage/settings.html +2 -2
- mage_ai/server/frontend_dist/manage/users/[user].html +2 -2
- mage_ai/server/frontend_dist/manage/users/new.html +2 -2
- mage_ai/server/frontend_dist/manage/users.html +2 -2
- mage_ai/server/frontend_dist/manage.html +2 -2
- mage_ai/server/frontend_dist/oauth.html +3 -3
- mage_ai/server/frontend_dist/overview.html +2 -2
- mage_ai/server/frontend_dist/pipeline-runs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills/[...slug].html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/dashboard.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/edit.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/logs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/runs/[run].html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/runs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/settings.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/syncs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers/[...slug].html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline].html +2 -2
- mage_ai/server/frontend_dist/pipelines.html +2 -2
- mage_ai/server/frontend_dist/platform/global-hooks/[...slug].html +2 -2
- mage_ai/server/frontend_dist/platform/global-hooks.html +2 -2
- mage_ai/server/frontend_dist/settings/account/profile.html +2 -2
- mage_ai/server/frontend_dist/settings/platform/preferences.html +2 -2
- mage_ai/server/frontend_dist/settings/platform/settings.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/permissions/[...slug].html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/permissions.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/preferences.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/roles/[...slug].html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/roles.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/sync-data.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/users/[...slug].html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/users.html +2 -2
- mage_ai/server/frontend_dist/settings.html +2 -2
- mage_ai/server/frontend_dist/sign-in.html +5 -5
- mage_ai/server/frontend_dist/templates/[...slug].html +2 -2
- mage_ai/server/frontend_dist/templates.html +2 -2
- mage_ai/server/frontend_dist/terminal.html +2 -2
- mage_ai/server/frontend_dist/test.html +2 -2
- mage_ai/server/frontend_dist/triggers.html +2 -2
- mage_ai/server/frontend_dist/v2/canvas.html +2 -2
- mage_ai/server/frontend_dist/v2.html +2 -2
- mage_ai/server/frontend_dist/version-control.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/404.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/449-5e2253c6aba42557.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/_app-ee5e328aaf51c698.js +2 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/users-5db54821a3059c69.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/overview-f65416f6dbe30ad3.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/settings-03d9bca3bc5e6088.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-d25d07db166cbb04.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/users-fa61dc6c1370e6a5.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/{webpack-12ad70eb5c31aa92.js → webpack-5f4be622608d9267.js} +1 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/{dxnSzgIvSG4Ke5LM-tPQX → iCySon3_GCldnbC5U7C-s}/_buildManifest.js +1 -1
- mage_ai/server/frontend_dist_base_path_template/block-layout.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/compute.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/files.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/global-data-products/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/global-data-products.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/global-hooks/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/global-hooks.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/index.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/files.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/overview.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/pipeline-runs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/settings.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/users/[user].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/users/new.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/users.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/oauth.html +3 -3
- mage_ai/server/frontend_dist_base_path_template/overview.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipeline-runs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/dashboard.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/edit.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/logs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs/[run].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/settings.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/syncs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/platform/global-hooks/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/platform/global-hooks.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/account/profile.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/platform/preferences.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/platform/settings.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/preferences.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/sync-data.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/users/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/users.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/sign-in.html +5 -5
- mage_ai/server/frontend_dist_base_path_template/templates/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/templates.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/terminal.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/test.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/triggers.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/v2/canvas.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/v2.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/version-control.html +2 -2
- mage_ai/server/scheduler_manager.py +2 -0
- mage_ai/server/terminal_server.py +3 -0
- mage_ai/settings/server.py +4 -0
- mage_ai/streaming/sources/kafka.py +2 -1
- mage_ai/tests/data_preparation/executors/test_block_executor.py +3 -3
- mage_ai/tests/data_preparation/models/block/dynamic/test_counter.py +1 -3
- mage_ai/tests/data_preparation/models/test_variable.py +2 -0
- mage_ai/tests/io/create_table/test_postgresql.py +3 -2
- mage_ai/tests/orchestration/notification/test_sender.py +5 -1
- mage_ai/tests/streaming/sources/test_kafka.py +2 -2
- mage_ai/usage_statistics/logger.py +99 -15
- mage_ai-0.9.77.dist-info/METADATA +356 -0
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info}/RECORD +211 -208
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info}/WHEEL +1 -1
- mage_ai/server/frontend_dist/_next/static/chunks/449-f689774546860ca4.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/_app-13bf3b7dcef50c29.js +0 -2
- mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/users-b99379d0aa6a8c25.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/overview-e51cd04bd4d1fffe.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/settings-0abf8a1b7243f93b.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-38187954b6ec4b40.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/users-3ee783f5139c76a1.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/449-f689774546860ca4.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/_app-0392ef723ea2c6f8.js +0 -2
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/users-b99379d0aa6a8c25.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/overview-e51cd04bd4d1fffe.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/settings-0abf8a1b7243f93b.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-38187954b6ec4b40.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/users-3ee783f5139c76a1.js +0 -1
- mage_ai-0.9.75.dist-info/METADATA +0 -377
- /mage_ai/server/frontend_dist/_next/static/chunks/pages/{_app-13bf3b7dcef50c29.js.LICENSE.txt → _app-782dd4a6b13e1c42.js.LICENSE.txt} +0 -0
- /mage_ai/server/frontend_dist/_next/static/{38-PtskJFUTYUpRhT1qF_ → qR0jauUABqPaFMjUsYeoG}/_ssgManifest.js +0 -0
- /mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{_app-0392ef723ea2c6f8.js.LICENSE.txt → _app-ee5e328aaf51c698.js.LICENSE.txt} +0 -0
- /mage_ai/server/frontend_dist_base_path_template/_next/static/{dxnSzgIvSG4Ke5LM-tPQX → iCySon3_GCldnbC5U7C-s}/_ssgManifest.js +0 -0
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info}/entry_points.txt +0 -0
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info/licenses}/LICENSE +0 -0
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mage-ai
|
|
3
|
+
Version: 0.9.77
|
|
4
|
+
Summary: Mage is a tool for building and deploying data pipelines.
|
|
5
|
+
Home-page: https://github.com/mage-ai/mage-ai
|
|
6
|
+
Author: Mage
|
|
7
|
+
Author-email: eng@mage.ai
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Requires-Python: >=3.9
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Requires-Dist: cachetools
|
|
15
|
+
Requires-Dist: Faker==4.14.0
|
|
16
|
+
Requires-Dist: GitPython==3.1.41
|
|
17
|
+
Requires-Dist: Jinja2==3.1.3
|
|
18
|
+
Requires-Dist: Pillow==10.3.0
|
|
19
|
+
Requires-Dist: PyGithub==1.59.0
|
|
20
|
+
Requires-Dist: PyJWT==2.6.0
|
|
21
|
+
Requires-Dist: aiofiles==22.1.0
|
|
22
|
+
Requires-Dist: aiohttp==3.10.0
|
|
23
|
+
Requires-Dist: alembic>=1.7.5
|
|
24
|
+
Requires-Dist: bcrypt==4.0.1
|
|
25
|
+
Requires-Dist: croniter==1.3.7
|
|
26
|
+
Requires-Dist: cryptography==42.0.4
|
|
27
|
+
Requires-Dist: dask>=2022.2.0
|
|
28
|
+
Requires-Dist: datadog==0.44.0
|
|
29
|
+
Requires-Dist: freezegun==1.2.2
|
|
30
|
+
Requires-Dist: great-expectations==0.18.12
|
|
31
|
+
Requires-Dist: httpx==0.25.0
|
|
32
|
+
Requires-Dist: inflection==0.5.1
|
|
33
|
+
Requires-Dist: ipykernel==6.15.0
|
|
34
|
+
Requires-Dist: ipython==8.10.0
|
|
35
|
+
Requires-Dist: itsdangerous~=1.1.0
|
|
36
|
+
Requires-Dist: joblib>=1.1.0
|
|
37
|
+
Requires-Dist: jupyter-server==2.14.1
|
|
38
|
+
Requires-Dist: jupyter_client==7.4.4
|
|
39
|
+
Requires-Dist: ldap3==2.9.1
|
|
40
|
+
Requires-Dist: memory_profiler
|
|
41
|
+
Requires-Dist: newrelic==8.8.0
|
|
42
|
+
Requires-Dist: numpy>=1.22.0
|
|
43
|
+
Requires-Dist: pandas>=1.3.0
|
|
44
|
+
Requires-Dist: polars==1.29.0
|
|
45
|
+
Requires-Dist: protobuf>=4.25.0
|
|
46
|
+
Requires-Dist: psutil==5.9.8
|
|
47
|
+
Requires-Dist: pyairtable>=2.3.3
|
|
48
|
+
Requires-Dist: pyarrow>=14.0.1
|
|
49
|
+
Requires-Dist: python-dateutil==2.8.2
|
|
50
|
+
Requires-Dist: pytz>=2022.2.1
|
|
51
|
+
Requires-Dist: pyyaml~=6.0
|
|
52
|
+
Requires-Dist: redis~=5.0.1
|
|
53
|
+
Requires-Dist: requests~=2.31.0
|
|
54
|
+
Requires-Dist: ruamel.yaml==0.17.17
|
|
55
|
+
Requires-Dist: scikit-learn>=1.0
|
|
56
|
+
Requires-Dist: sentry-sdk==1.19.1
|
|
57
|
+
Requires-Dist: setuptools==70.0.0
|
|
58
|
+
Requires-Dist: simplejson
|
|
59
|
+
Requires-Dist: six>=1.15.0
|
|
60
|
+
Requires-Dist: sqlalchemy<2.0.0,>=1.4.20
|
|
61
|
+
Requires-Dist: sqlglot[rs]
|
|
62
|
+
Requires-Dist: terminado==0.17.1
|
|
63
|
+
Requires-Dist: thefuzz[speedup]==0.19.0
|
|
64
|
+
Requires-Dist: tornado==6.4.2
|
|
65
|
+
Requires-Dist: typer[all]==0.9.0
|
|
66
|
+
Requires-Dist: typing_extensions==4.10.0
|
|
67
|
+
Requires-Dist: watchdog==4.0.0
|
|
68
|
+
Requires-Dist: Werkzeug==3.0.3
|
|
69
|
+
Provides-Extra: ai
|
|
70
|
+
Requires-Dist: astor>=0.8.1; extra == "ai"
|
|
71
|
+
Requires-Dist: langchain==0.1.6; extra == "ai"
|
|
72
|
+
Requires-Dist: langchain_community<0.0.20; extra == "ai"
|
|
73
|
+
Requires-Dist: openai>=1.0.0; extra == "ai"
|
|
74
|
+
Provides-Extra: airtable
|
|
75
|
+
Requires-Dist: pyairtable>=2.3.3; extra == "airtable"
|
|
76
|
+
Provides-Extra: azure
|
|
77
|
+
Requires-Dist: azure-eventhub==5.11.2; extra == "azure"
|
|
78
|
+
Requires-Dist: azure-identity==1.12.0; extra == "azure"
|
|
79
|
+
Requires-Dist: azure-keyvault-secrets==4.6.0; extra == "azure"
|
|
80
|
+
Requires-Dist: azure-keyvault-certificates==4.6.0; extra == "azure"
|
|
81
|
+
Requires-Dist: azure-mgmt-containerinstance==10.1.0; extra == "azure"
|
|
82
|
+
Requires-Dist: azure-storage-blob==12.14.1; extra == "azure"
|
|
83
|
+
Provides-Extra: bigquery
|
|
84
|
+
Requires-Dist: google-cloud-bigquery~=3.0; extra == "bigquery"
|
|
85
|
+
Requires-Dist: db-dtypes==1.0.5; extra == "bigquery"
|
|
86
|
+
Provides-Extra: chroma
|
|
87
|
+
Requires-Dist: chromadb>=0.4.17; extra == "chroma"
|
|
88
|
+
Provides-Extra: clickhouse
|
|
89
|
+
Requires-Dist: clickhouse-connect~=0.6.23; extra == "clickhouse"
|
|
90
|
+
Provides-Extra: dbt
|
|
91
|
+
Requires-Dist: dbt-adapters==1.8.0; extra == "dbt"
|
|
92
|
+
Requires-Dist: dbt-bigquery==1.8.3; extra == "dbt"
|
|
93
|
+
Requires-Dist: dbt-clickhouse==1.8.5; extra == "dbt"
|
|
94
|
+
Requires-Dist: dbt-core==1.8.7; extra == "dbt"
|
|
95
|
+
Requires-Dist: dbt-duckdb==1.8.4; extra == "dbt"
|
|
96
|
+
Requires-Dist: dbt-postgres==1.8.2; extra == "dbt"
|
|
97
|
+
Requires-Dist: dbt-redshift==1.8.1; extra == "dbt"
|
|
98
|
+
Requires-Dist: dbt-snowflake==1.8.4; extra == "dbt"
|
|
99
|
+
Requires-Dist: dbt-spark==1.8.0; extra == "dbt"
|
|
100
|
+
Requires-Dist: dbt-sqlserver==1.8.4; extra == "dbt"
|
|
101
|
+
Requires-Dist: dbt-synapse==1.8.2; extra == "dbt"
|
|
102
|
+
Requires-Dist: dbt-trino==1.8.4; extra == "dbt"
|
|
103
|
+
Requires-Dist: trino~=0.326; extra == "dbt"
|
|
104
|
+
Provides-Extra: google-cloud-storage
|
|
105
|
+
Requires-Dist: google-cloud-storage==2.5.0; extra == "google-cloud-storage"
|
|
106
|
+
Requires-Dist: gspread==5.7.2; extra == "google-cloud-storage"
|
|
107
|
+
Provides-Extra: hdf5
|
|
108
|
+
Requires-Dist: tables==3.7.0; python_version < "3.11" and extra == "hdf5"
|
|
109
|
+
Requires-Dist: tables==3.10.1; python_version >= "3.11" and extra == "hdf5"
|
|
110
|
+
Provides-Extra: mysql
|
|
111
|
+
Requires-Dist: mysql-connector-python~=8.4.0; python_version < "3.11" and extra == "mysql"
|
|
112
|
+
Requires-Dist: mysql-connector-python~=9.0.0; python_version >= "3.11" and extra == "mysql"
|
|
113
|
+
Provides-Extra: oracle
|
|
114
|
+
Requires-Dist: oracledb==1.3.1; python_version < "3.12" and extra == "oracle"
|
|
115
|
+
Requires-Dist: oracledb==2.4.1; python_version >= "3.12" and extra == "oracle"
|
|
116
|
+
Provides-Extra: postgres
|
|
117
|
+
Requires-Dist: psycopg2==2.9.3; extra == "postgres"
|
|
118
|
+
Requires-Dist: psycopg2-binary==2.9.3; extra == "postgres"
|
|
119
|
+
Requires-Dist: sshtunnel==0.4.0; extra == "postgres"
|
|
120
|
+
Provides-Extra: qdrant
|
|
121
|
+
Requires-Dist: qdrant-client==1.6.9; extra == "qdrant"
|
|
122
|
+
Requires-Dist: sentence-transformers==2.2.2; extra == "qdrant"
|
|
123
|
+
Provides-Extra: redshift
|
|
124
|
+
Requires-Dist: boto3==1.26.60; extra == "redshift"
|
|
125
|
+
Requires-Dist: redshift-connector==2.0.915; extra == "redshift"
|
|
126
|
+
Requires-Dist: lxml==4.9.4; extra == "redshift"
|
|
127
|
+
Provides-Extra: s3
|
|
128
|
+
Requires-Dist: boto3==1.26.60; extra == "s3"
|
|
129
|
+
Requires-Dist: botocore==1.29.60; extra == "s3"
|
|
130
|
+
Provides-Extra: snowflake
|
|
131
|
+
Requires-Dist: snowflake-connector-python==3.7.1; extra == "snowflake"
|
|
132
|
+
Provides-Extra: spark
|
|
133
|
+
Requires-Dist: boto3==1.26.60; extra == "spark"
|
|
134
|
+
Requires-Dist: botocore==1.29.60; extra == "spark"
|
|
135
|
+
Provides-Extra: streaming
|
|
136
|
+
Requires-Dist: confluent-avro~=1.8.0; extra == "streaming"
|
|
137
|
+
Requires-Dist: elasticsearch==8.15.1; extra == "streaming"
|
|
138
|
+
Requires-Dist: influxdb_client==1.36.1; extra == "streaming"
|
|
139
|
+
Requires-Dist: kafka-python==2.0.2; extra == "streaming"
|
|
140
|
+
Requires-Dist: nats-py==2.6.0; extra == "streaming"
|
|
141
|
+
Requires-Dist: nkeys~=0.2.0; extra == "streaming"
|
|
142
|
+
Requires-Dist: opensearch-py==2.0.0; extra == "streaming"
|
|
143
|
+
Requires-Dist: pika==1.3.1; extra == "streaming"
|
|
144
|
+
Requires-Dist: pymongo==4.3.3; extra == "streaming"
|
|
145
|
+
Requires-Dist: requests_aws4auth==1.1.2; extra == "streaming"
|
|
146
|
+
Requires-Dist: stomp.py==8.1.0; extra == "streaming"
|
|
147
|
+
Provides-Extra: all
|
|
148
|
+
Requires-Dist: PyGithub==1.59.0; extra == "all"
|
|
149
|
+
Requires-Dist: astor>=0.8.1; extra == "all"
|
|
150
|
+
Requires-Dist: aws-secretsmanager-caching==1.1.1.5; extra == "all"
|
|
151
|
+
Requires-Dist: azure-eventhub==5.11.2; extra == "all"
|
|
152
|
+
Requires-Dist: azure-identity==1.12.0; extra == "all"
|
|
153
|
+
Requires-Dist: azure-keyvault-certificates==4.6.0; extra == "all"
|
|
154
|
+
Requires-Dist: azure-keyvault-secrets==4.6.0; extra == "all"
|
|
155
|
+
Requires-Dist: azure-mgmt-containerinstance==10.1.0; extra == "all"
|
|
156
|
+
Requires-Dist: azure-storage-blob==12.14.1; extra == "all"
|
|
157
|
+
Requires-Dist: boto3==1.26.60; extra == "all"
|
|
158
|
+
Requires-Dist: botocore==1.29.60; extra == "all"
|
|
159
|
+
Requires-Dist: clickhouse-connect~=0.6.23; extra == "all"
|
|
160
|
+
Requires-Dist: confluent-avro~=1.8.0; extra == "all"
|
|
161
|
+
Requires-Dist: db-dtypes==1.0.5; extra == "all"
|
|
162
|
+
Requires-Dist: dbt-adapters==1.8.0; extra == "all"
|
|
163
|
+
Requires-Dist: dbt-bigquery==1.8.3; extra == "all"
|
|
164
|
+
Requires-Dist: dbt-clickhouse==1.8.5; extra == "all"
|
|
165
|
+
Requires-Dist: dbt-core==1.8.7; extra == "all"
|
|
166
|
+
Requires-Dist: dbt-duckdb==1.8.4; extra == "all"
|
|
167
|
+
Requires-Dist: dbt-postgres==1.8.2; extra == "all"
|
|
168
|
+
Requires-Dist: dbt-redshift==1.8.1; extra == "all"
|
|
169
|
+
Requires-Dist: dbt-snowflake==1.8.4; extra == "all"
|
|
170
|
+
Requires-Dist: dbt-spark==1.8.0; extra == "all"
|
|
171
|
+
Requires-Dist: dbt-sqlserver==1.8.4; extra == "all"
|
|
172
|
+
Requires-Dist: dbt-synapse==1.8.2; extra == "all"
|
|
173
|
+
Requires-Dist: dbt-trino==1.8.4; extra == "all"
|
|
174
|
+
Requires-Dist: duckdb==1.0.0; extra == "all"
|
|
175
|
+
Requires-Dist: elasticsearch==8.15.1; extra == "all"
|
|
176
|
+
Requires-Dist: google-api-core~=2.15.0; extra == "all"
|
|
177
|
+
Requires-Dist: google-api-python-client~=2.70.0; extra == "all"
|
|
178
|
+
Requires-Dist: google-cloud-bigquery~=3.14.1; extra == "all"
|
|
179
|
+
Requires-Dist: google-cloud-iam~=2.13.0; extra == "all"
|
|
180
|
+
Requires-Dist: google-cloud-pubsub~=2.19.0; extra == "all"
|
|
181
|
+
Requires-Dist: google-cloud-run~=0.10.1; extra == "all"
|
|
182
|
+
Requires-Dist: google-cloud-storage~=2.5.0; extra == "all"
|
|
183
|
+
Requires-Dist: great-expectations==0.18.12; extra == "all"
|
|
184
|
+
Requires-Dist: gspread==5.7.2; extra == "all"
|
|
185
|
+
Requires-Dist: influxdb_client==1.36.1; extra == "all"
|
|
186
|
+
Requires-Dist: kafka-python==2.0.2; extra == "all"
|
|
187
|
+
Requires-Dist: kubernetes>=28.1.0; extra == "all"
|
|
188
|
+
Requires-Dist: langchain==0.1.6; extra == "all"
|
|
189
|
+
Requires-Dist: langchain_community<0.0.20; extra == "all"
|
|
190
|
+
Requires-Dist: ldap3==2.9.1; extra == "all"
|
|
191
|
+
Requires-Dist: nats-py==2.6.0; extra == "all"
|
|
192
|
+
Requires-Dist: nkeys~=0.2.0; extra == "all"
|
|
193
|
+
Requires-Dist: openai>=1.0.0; extra == "all"
|
|
194
|
+
Requires-Dist: opensearch-py==2.0.0; extra == "all"
|
|
195
|
+
Requires-Dist: opentelemetry-api==1.22.0; extra == "all"
|
|
196
|
+
Requires-Dist: opentelemetry-exporter-prometheus==0.43b0; extra == "all"
|
|
197
|
+
Requires-Dist: opentelemetry-instrumentation-tornado==0.43b0; extra == "all"
|
|
198
|
+
Requires-Dist: opentelemetry-exporter-otlp==1.22.0; extra == "all"
|
|
199
|
+
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.43b0; extra == "all"
|
|
200
|
+
Requires-Dist: oracledb==1.3.1; extra == "all"
|
|
201
|
+
Requires-Dist: pika==1.3.1; extra == "all"
|
|
202
|
+
Requires-Dist: pinotdb==5.6.0; extra == "all"
|
|
203
|
+
Requires-Dist: prometheus_client>=0.18.0; extra == "all"
|
|
204
|
+
Requires-Dist: protobuf>=4.25.0; extra == "all"
|
|
205
|
+
Requires-Dist: psycopg2-binary==2.9.3; extra == "all"
|
|
206
|
+
Requires-Dist: psycopg2==2.9.3; extra == "all"
|
|
207
|
+
Requires-Dist: pyairtable==2.3.3; extra == "all"
|
|
208
|
+
Requires-Dist: pydruid==0.6.5; extra == "all"
|
|
209
|
+
Requires-Dist: pymongo==4.3.3; extra == "all"
|
|
210
|
+
Requires-Dist: pyodbc==4.0.35; python_version < "3.12" and extra == "all"
|
|
211
|
+
Requires-Dist: pyodbc==5.0.1; python_version >= "3.12" and extra == "all"
|
|
212
|
+
Requires-Dist: redshift-connector==2.0.915; extra == "all"
|
|
213
|
+
Requires-Dist: lxml==4.9.4; extra == "all"
|
|
214
|
+
Requires-Dist: requests_aws4auth==1.1.2; extra == "all"
|
|
215
|
+
Requires-Dist: snowflake-connector-python==3.7.1; extra == "all"
|
|
216
|
+
Requires-Dist: sshtunnel==0.4.0; extra == "all"
|
|
217
|
+
Requires-Dist: stomp.py==8.1.0; extra == "all"
|
|
218
|
+
Requires-Dist: thefuzz[speedup]==0.19.0; extra == "all"
|
|
219
|
+
Requires-Dist: trino~=0.326; extra == "all"
|
|
220
|
+
Dynamic: author
|
|
221
|
+
Dynamic: author-email
|
|
222
|
+
Dynamic: classifier
|
|
223
|
+
Dynamic: description
|
|
224
|
+
Dynamic: description-content-type
|
|
225
|
+
Dynamic: home-page
|
|
226
|
+
Dynamic: license-file
|
|
227
|
+
Dynamic: provides-extra
|
|
228
|
+
Dynamic: requires-dist
|
|
229
|
+
Dynamic: requires-python
|
|
230
|
+
Dynamic: summary
|
|
231
|
+
|
|
232
|
+
# Mage OSS
|
|
233
|
+
|
|
234
|
+
### Build modern data pipelines locally — fast, visual, and production-ready.
|
|
235
|
+
|
|
236
|
+
<br />
|
|
237
|
+
|
|
238
|
+
Mage OSS is a self-hosted development environment designed to help teams create production-grade data pipelines with confidence.
|
|
239
|
+
|
|
240
|
+
Ideal for automating ETL tasks, architecting data flow, or orchestrating transformations — all in a fast, notebook-style interface powered by modular code.
|
|
241
|
+
|
|
242
|
+
When it’s time to scale, [Mage Pro](https://mage.ai) — our core platform — unlocks enterprise orchestration, collaboration, and AI-powered workflows.
|
|
243
|
+
|
|
244
|
+
<br />
|
|
245
|
+
|
|
246
|
+
[](https://github.com/mage-ai/mage-ai/stargazers)
|
|
247
|
+
[](https://hub.docker.com/r/mageai/mageai)
|
|
248
|
+
[](https://www.mage.ai/chat)
|
|
249
|
+
[](https://github.com/mage-ai/mage-ai/blob/master/LICENSE)
|
|
250
|
+
|
|
251
|
+
<br />
|
|
252
|
+
|
|
253
|
+
## What you can do with Mage OSS
|
|
254
|
+
|
|
255
|
+
- Build pipelines locally with Python, SQL, or R in a modular notebook-style UI
|
|
256
|
+
|
|
257
|
+
- Run jobs manually or on a schedule (cron supported)
|
|
258
|
+
|
|
259
|
+
- Connect to databases, APIs, and cloud storage with prebuilt connectors
|
|
260
|
+
|
|
261
|
+
- Debug visually with logs, live previews, and step-by-step execution
|
|
262
|
+
|
|
263
|
+
- Set up quickly with Docker, pip, or conda — no cloud account required
|
|
264
|
+
|
|
265
|
+
- Your go-to workspace for local pipeline development — fully in your control.
|
|
266
|
+
|
|
267
|
+
<img width="100%" alt="mage" src="https://github.com/user-attachments/assets/75992872-20a6-4120-8bf0-9c22a3d66450" />
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
<br /><br />
|
|
271
|
+
|
|
272
|
+
## Start local. Scale when you're ready.
|
|
273
|
+
|
|
274
|
+
Use Mage OSS to build and run pipelines on your machine. When you're ready for advanced tooling, performance, and AI-assisted productivity, Mage Pro is just one click away.
|
|
275
|
+
|
|
276
|
+
[**Try Mage Pro free →**](https://mage.ai)
|
|
277
|
+
|
|
278
|
+
<br />
|
|
279
|
+
|
|
280
|
+
### Quickstart
|
|
281
|
+
|
|
282
|
+
Install using Docker (recommended):
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
docker pull mageai/mageai:latest
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Or with pip:
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
pip install mage-ai
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
Or with conda:
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
conda install -c conda-forge mage-ai
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
Full setup guide and docs: [docs.mage.ai](https://docs.mage.ai)
|
|
301
|
+
|
|
302
|
+
<br />
|
|
303
|
+
|
|
304
|
+
## Core Features
|
|
305
|
+
|
|
306
|
+
| Feature | Description |
|
|
307
|
+
| :- | :- |
|
|
308
|
+
| Modular pipelines | Build pipelines block-by-block using Python, SQL, or R |
|
|
309
|
+
| Notebook UI | Interactive editor for writing and documenting logic |
|
|
310
|
+
| Data integrations | Prebuilt connectors to databases, APIs, and cloud storage |
|
|
311
|
+
| Scheduling | Trigger pipelines manually or on a schedule |
|
|
312
|
+
| Visual debugging | Step-by-step logs, data previews, and error handling |
|
|
313
|
+
| dbt support | Build and run dbt models directly inside Mage |
|
|
314
|
+
|
|
315
|
+
<br />
|
|
316
|
+
|
|
317
|
+
## Example Use Cases
|
|
318
|
+
|
|
319
|
+
- Move data from Google Sheets to Snowflake with a Python transform
|
|
320
|
+
- Schedule a daily SQL pipeline to clean and aggregate product data
|
|
321
|
+
- Develop dbt models in a visual notebook-style interface
|
|
322
|
+
- Run simple ETL/ELT jobs locally with full transparency
|
|
323
|
+
|
|
324
|
+
<br />
|
|
325
|
+
|
|
326
|
+
## Documentation
|
|
327
|
+
|
|
328
|
+
Looking for how-to guides, examples, or advanced configuration?
|
|
329
|
+
|
|
330
|
+
Explore our full documentation at [docs.mage.ai](https://docs.mage.ai).
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
<br />
|
|
334
|
+
|
|
335
|
+
## Contributing
|
|
336
|
+
|
|
337
|
+
We welcome contributions of all kinds — bug fixes, docs, new features, or community examples.
|
|
338
|
+
|
|
339
|
+
Start with our [contributing guide](https://docs.mage.ai/contributing/overview), check out open issues, or suggest improvements.
|
|
340
|
+
|
|
341
|
+
<br />
|
|
342
|
+
|
|
343
|
+
## Ready to scale? Mage Pro has you covered.
|
|
344
|
+
|
|
345
|
+
Mage Pro is a powered-up platform built for teams.
|
|
346
|
+
It adds everything you need for production pipelines, at scale.
|
|
347
|
+
|
|
348
|
+
- Magical AI-assisted development and debugging
|
|
349
|
+
- Multi-environment orchestration
|
|
350
|
+
- Role-based access control
|
|
351
|
+
- Real-time monitoring & alerts
|
|
352
|
+
- Powerful CI/CD & version control
|
|
353
|
+
- Powerful enterprise features
|
|
354
|
+
- Available fully managed, hybrid, or on-premises
|
|
355
|
+
|
|
356
|
+
[**Try Mage Pro free →**](https://mage.ai)
|