mage-ai 0.9.76__py3-none-any.whl → 0.9.78__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/resources/GitFileResource.py +8 -0
- mage_ai/cli/main.py +6 -1
- mage_ai/data_preparation/executors/block_executor.py +8 -3
- mage_ai/data_preparation/executors/pipeline_executor.py +35 -19
- mage_ai/data_preparation/git/utils.py +2 -2
- mage_ai/data_preparation/logging/logger_manager.py +18 -2
- mage_ai/data_preparation/models/block/__init__.py +29 -22
- mage_ai/data_preparation/models/block/outputs.py +7 -1
- mage_ai/data_preparation/models/constants.py +2 -0
- mage_ai/data_preparation/storage/local_storage.py +4 -1
- mage_ai/io/config.py +1 -0
- mage_ai/io/mssql.py +16 -9
- mage_ai/io/postgres.py +3 -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 +105 -0
- mage_ai/orchestration/job_manager.py +19 -0
- mage_ai/orchestration/notification/sender.py +2 -2
- mage_ai/orchestration/pipeline_scheduler_original.py +146 -1
- mage_ai/orchestration/queue/config.py +11 -1
- mage_ai/orchestration/queue/process_queue.py +2 -0
- mage_ai/server/api/base.py +41 -0
- mage_ai/server/api/constants.py +1 -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/pages/pipelines/[pipeline]/edit-3881267993576e2c.js +1 -0
- mage_ai/server/frontend_dist/_next/static/{qR0jauUABqPaFMjUsYeoG → yqYUo8S74SIsh2zOwDJBS}/_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/pages/pipelines/[pipeline]/edit-3881267993576e2c.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/{iCySon3_GCldnbC5U7C-s → xAmU_ZNdoOy8aaJdtbt_F}/_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 +3 -1
- 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/logging/test_logger_manager.py +24 -5
- 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-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/METADATA +72 -107
- {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/RECORD +164 -163
- {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/WHEEL +1 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-432da20df91511fb.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/edit-432da20df91511fb.js +0 -1
- /mage_ai/server/frontend_dist/_next/static/{qR0jauUABqPaFMjUsYeoG → yqYUo8S74SIsh2zOwDJBS}/_ssgManifest.js +0 -0
- /mage_ai/server/frontend_dist_base_path_template/_next/static/{iCySon3_GCldnbC5U7C-s → xAmU_ZNdoOy8aaJdtbt_F}/_ssgManifest.js +0 -0
- {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/entry_points.txt +0 -0
- {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/licenses/LICENSE +0 -0
- {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/top_level.txt +0 -0
|
@@ -33,7 +33,7 @@ class KafkaTests(TestCase):
|
|
|
33
33
|
api_version='0.10.2',
|
|
34
34
|
auto_offset_reset='latest',
|
|
35
35
|
max_partition_fetch_bytes=1048576,
|
|
36
|
-
enable_auto_commit=
|
|
36
|
+
enable_auto_commit=False,
|
|
37
37
|
)
|
|
38
38
|
|
|
39
39
|
def test_init_client_with_topics(self):
|
|
@@ -56,7 +56,7 @@ class KafkaTests(TestCase):
|
|
|
56
56
|
api_version='0.10.2',
|
|
57
57
|
auto_offset_reset='latest',
|
|
58
58
|
max_partition_fetch_bytes=1048576,
|
|
59
|
-
enable_auto_commit=
|
|
59
|
+
enable_auto_commit=False,
|
|
60
60
|
)
|
|
61
61
|
|
|
62
62
|
def test_init_client_with_missing_topic_or_topics(self):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mage-ai
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.78
|
|
4
4
|
Summary: Mage is a tool for building and deploying data pipelines.
|
|
5
5
|
Home-page: https://github.com/mage-ai/mage-ai
|
|
6
6
|
Author: Mage
|
|
@@ -12,6 +12,7 @@ Requires-Python: >=3.9
|
|
|
12
12
|
Description-Content-Type: text/markdown
|
|
13
13
|
License-File: LICENSE
|
|
14
14
|
Requires-Dist: cachetools
|
|
15
|
+
Requires-Dist: click<8.2.0
|
|
15
16
|
Requires-Dist: Faker==4.14.0
|
|
16
17
|
Requires-Dist: GitPython==3.1.41
|
|
17
18
|
Requires-Dist: Jinja2==3.1.3
|
|
@@ -41,7 +42,8 @@ Requires-Dist: memory_profiler
|
|
|
41
42
|
Requires-Dist: newrelic==8.8.0
|
|
42
43
|
Requires-Dist: numpy>=1.22.0
|
|
43
44
|
Requires-Dist: pandas>=1.3.0
|
|
44
|
-
Requires-Dist:
|
|
45
|
+
Requires-Dist: paramiko==3.5.1
|
|
46
|
+
Requires-Dist: polars==1.29.0
|
|
45
47
|
Requires-Dist: protobuf>=4.25.0
|
|
46
48
|
Requires-Dist: psutil==5.9.8
|
|
47
49
|
Requires-Dist: pyairtable>=2.3.3
|
|
@@ -229,165 +231,128 @@ Dynamic: requires-dist
|
|
|
229
231
|
Dynamic: requires-python
|
|
230
232
|
Dynamic: summary
|
|
231
233
|
|
|
232
|
-
|
|
233
|
-
<h1>Mage AI</h1>
|
|
234
|
+
# Mage OSS
|
|
234
235
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
<a href="https://mage.ai"><img alt="Mage AI GitHub repo stars" src="https://img.shields.io/github/stars/mage-ai/mage-ai?style=for-the-badge&logo=github&labelColor=000000&logoColor=FFFFFF&label=stars&color=0500ff" /></a>
|
|
238
|
-
<a href="https://hub.docker.com/r/mageai/mageai"><img alt="Mage AI Docker downloads" src="https://img.shields.io/docker/pulls/mageai/mageai?style=for-the-badge&logo=docker&labelColor=000000&logoColor=FFFFFF&label=pulls&color=6A35FF" /></a>
|
|
239
|
-
<a href="https://github.com/mage-ai/mage-ai/blob/master/LICENSE"><img alt="Mage AI license" src="https://img.shields.io/github/license/mage-ai/mage-ai?style=for-the-badge&logo=codeigniter&labelColor=000000&logoColor=FFFFFF&label=license&color=FFCC19" /></a>
|
|
240
|
-
<a href="https://www.mage.ai/chat"><img alt="Join the Mage AI community" src="https://img.shields.io/badge/Join%20the%20community-black.svg?style=for-the-badge&logo=lightning&labelColor=000000&logoColor=FFFFFF&label=&color=DD55FF&logoWidth=20" /></a>
|
|
241
|
-
|
|
242
|
-
</div>
|
|
236
|
+
### Build modern data pipelines locally — fast, visual, and production-ready.
|
|
243
237
|
|
|
244
238
|
<br />
|
|
245
239
|
|
|
246
|
-
|
|
247
|
-
<picture>
|
|
248
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/mage-ai/assets/blob/main/oss/hero.png?raw=true">
|
|
249
|
-
<img alt="Mage AI hero" src="https://github.com/mage-ai/assets/blob/main/oss/hero.png?raw=true" />
|
|
250
|
-
</picture>
|
|
251
|
-
</a>
|
|
240
|
+
Mage OSS is a self-hosted development environment designed to help teams create production-grade data pipelines with confidence.
|
|
252
241
|
|
|
253
|
-
|
|
254
|
-
<br />
|
|
242
|
+
Ideal for automating ETL tasks, architecting data flow, or orchestrating transformations — all in a fast, notebook-style interface powered by modular code.
|
|
255
243
|
|
|
256
|
-
|
|
244
|
+
When it’s time to scale, [Mage Pro](https://mage.ai) — our core platform — unlocks enterprise orchestration, collaboration, and AI-powered workflows.
|
|
257
245
|
|
|
258
246
|
<br />
|
|
259
247
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
-
|
|
248
|
+
[](https://github.com/mage-ai/mage-ai/stargazers)
|
|
249
|
+
[](https://hub.docker.com/r/mageai/mageai)
|
|
250
|
+
[](https://www.mage.ai/chat)
|
|
251
|
+
[](https://github.com/mage-ai/mage-ai/blob/master/LICENSE)
|
|
264
252
|
|
|
265
253
|
<br />
|
|
266
254
|
|
|
267
|
-
|
|
255
|
+
## What you can do with Mage OSS
|
|
268
256
|
|
|
269
|
-
|
|
257
|
+
- Build pipelines locally with Python, SQL, or R in a modular notebook-style UI
|
|
270
258
|
|
|
271
|
-
|
|
259
|
+
- Run jobs manually or on a schedule (cron supported)
|
|
272
260
|
|
|
273
|
-
|
|
261
|
+
- Connect to databases, APIs, and cloud storage with prebuilt connectors
|
|
274
262
|
|
|
275
|
-
|
|
276
|
-
<tr>
|
|
277
|
-
<td rowspan="2">
|
|
278
|
-
<a href="https://cloud.mage.ai/sign-up">
|
|
279
|
-
<img alt="Mage Pro" width="124" align="left" src="https://github.com/mage-ai/assets/blob/main/oss/card-pro.png?raw=true" />
|
|
280
|
-
</a>
|
|
281
|
-
<b>For teams.</b> Fully managed platform
|
|
282
|
-
for integrating and transforming data.
|
|
283
|
-
</td>
|
|
284
|
-
<td rowspan="2">
|
|
285
|
-
<a href="https://github.com/mage-ai/mage-ai?tab=readme-ov-file#its-magic">
|
|
286
|
-
<img alt="Mage OSS" width="124" align="left" src="https://github.com/mage-ai/assets/blob/main/oss/card-oss.png?raw=true" />
|
|
287
|
-
</a>
|
|
288
|
-
<b>Self-hosted.</b> System to build, run, and
|
|
289
|
-
manage data pipelines.
|
|
290
|
-
</td>
|
|
291
|
-
</tr>
|
|
292
|
-
</table>
|
|
263
|
+
- Debug visually with logs, live previews, and step-by-step execution
|
|
293
264
|
|
|
294
|
-
|
|
265
|
+
- Set up quickly with Docker, pip, or conda — no cloud account required
|
|
295
266
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
267
|
+
- Your go-to workspace for local pipeline development — fully in your control.
|
|
268
|
+
|
|
269
|
+
<img width="100%" alt="mage" src="https://github.com/user-attachments/assets/75992872-20a6-4120-8bf0-9c22a3d66450" />
|
|
299
270
|
|
|
300
|
-
<br />
|
|
301
|
-
<br />
|
|
302
271
|
|
|
303
|
-
<
|
|
272
|
+
<br /><br />
|
|
304
273
|
|
|
305
|
-
|
|
274
|
+
## Start local. Scale when you're ready.
|
|
306
275
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
<a
|
|
311
|
-
href="https://docs.mage.ai?source=github"
|
|
312
|
-
target="_blank"
|
|
313
|
-
><b>Developer documentation portal</b></a>.
|
|
314
|
-
</p>
|
|
276
|
+
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.
|
|
277
|
+
|
|
278
|
+
[**Try Mage Pro free →**](https://mage.ai)
|
|
315
279
|
|
|
316
280
|
<br />
|
|
317
281
|
|
|
318
|
-
|
|
282
|
+
### Quickstart
|
|
319
283
|
|
|
320
|
-
|
|
284
|
+
Install using Docker (recommended):
|
|
321
285
|
|
|
322
286
|
```bash
|
|
323
287
|
docker pull mageai/mageai:latest
|
|
324
288
|
```
|
|
325
289
|
|
|
326
|
-
|
|
290
|
+
Or with pip:
|
|
327
291
|
|
|
328
292
|
```bash
|
|
329
293
|
pip install mage-ai
|
|
330
294
|
```
|
|
295
|
+
|
|
296
|
+
Or with conda:
|
|
297
|
+
|
|
331
298
|
```bash
|
|
332
299
|
conda install -c conda-forge mage-ai
|
|
333
300
|
```
|
|
334
301
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
Looking for quick examples? Open a [demo](https://demo.mage.ai/) project right in your browser or check out our [guides](https://docs.mage.ai/guides/overview).
|
|
302
|
+
Full setup guide and docs: [docs.mage.ai](https://docs.mage.ai)
|
|
338
303
|
|
|
339
|
-
|
|
304
|
+
<br />
|
|
340
305
|
|
|
341
|
-
|
|
306
|
+
## Core Features
|
|
342
307
|
|
|
343
|
-
|
|
308
|
+
| Feature | Description |
|
|
309
|
+
| :- | :- |
|
|
310
|
+
| Modular pipelines | Build pipelines block-by-block using Python, SQL, or R |
|
|
311
|
+
| Notebook UI | Interactive editor for writing and documenting logic |
|
|
312
|
+
| Data integrations | Prebuilt connectors to databases, APIs, and cloud storage |
|
|
313
|
+
| Scheduling | Trigger pipelines manually or on a schedule |
|
|
314
|
+
| Visual debugging | Step-by-step logs, data previews, and error handling |
|
|
315
|
+
| dbt support | Build and run dbt models directly inside Mage |
|
|
344
316
|
|
|
345
|
-
|
|
346
|
-
>
|
|
347
|
-
> The live demo is public to everyone, please don’t save anything sensitive (e.g. passwords, secrets, etc).
|
|
348
|
-
### Demo video (5 min)
|
|
317
|
+
<br />
|
|
349
318
|
|
|
350
|
-
|
|
319
|
+
## Example Use Cases
|
|
351
320
|
|
|
352
|
-
|
|
321
|
+
- Move data from Google Sheets to Snowflake with a Python transform
|
|
322
|
+
- Schedule a daily SQL pipeline to clean and aggregate product data
|
|
323
|
+
- Develop dbt models in a visual notebook-style interface
|
|
324
|
+
- Run simple ETL/ELT jobs locally with full transparency
|
|
353
325
|
|
|
354
326
|
<br />
|
|
355
327
|
|
|
356
|
-
##
|
|
328
|
+
## Documentation
|
|
357
329
|
|
|
358
|
-
|
|
359
|
-
| --- | --- | --- |
|
|
360
|
-
| 🎶 | <b>[Orchestration](https://docs.mage.ai/design/data-pipeline-management)</b> | Schedule and manage data pipelines with observability. |
|
|
361
|
-
| 📓 | <b>[Notebook](https://docs.mage.ai/about/features#notebook-for-building-data-pipelines)</b> | Interactive Python, SQL, & R editor for coding data pipelines. |
|
|
362
|
-
| 🏗️ | <b>[Data integrations](https://docs.mage.ai/data-integrations/overview)</b> | Synchronize data from 3rd party sources to your internal destinations. |
|
|
363
|
-
| 🚰 | <b>[Streaming pipelines](https://docs.mage.ai/guides/streaming-pipeline)</b> | Ingest and transform real-time data. |
|
|
364
|
-
| ❎ | <b>[dbt](https://docs.mage.ai/dbt/overview)</b> | Build, run, and manage your dbt models with Mage. |
|
|
330
|
+
Looking for how-to guides, examples, or advanced configuration?
|
|
365
331
|
|
|
366
|
-
|
|
332
|
+
Explore our full documentation at [docs.mage.ai](https://docs.mage.ai).
|
|
367
333
|
|
|
368
|
-
<b>A sample data pipeline defined across 3 files ➝</b>
|
|
369
334
|
|
|
370
335
|
<br />
|
|
371
336
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
```
|
|
378
|
-
1. Transform data ➝
|
|
379
|
-
```python
|
|
380
|
-
@transformer
|
|
381
|
-
def select_columns_from_df(df: pl.DataFrame, *args) -> pl.DataFrame:
|
|
382
|
-
return df[['Age', 'Fare', 'Survived']]
|
|
383
|
-
```
|
|
384
|
-
1. Export data ➝
|
|
385
|
-
```python
|
|
386
|
-
@data_exporter
|
|
387
|
-
def export_titanic_data_to_disk(df: pl.DataFrame) -> None:
|
|
388
|
-
df.to_csv('default_repo/titanic_transformed.csv')
|
|
389
|
-
```
|
|
337
|
+
## Contributing
|
|
338
|
+
|
|
339
|
+
We welcome contributions of all kinds — bug fixes, docs, new features, or community examples.
|
|
340
|
+
|
|
341
|
+
Start with our [contributing guide](https://docs.mage.ai/contributing/overview), check out open issues, or suggest improvements.
|
|
390
342
|
|
|
391
343
|
<br />
|
|
392
344
|
|
|
393
|
-
|
|
345
|
+
## Ready to scale? Mage Pro has you covered.
|
|
346
|
+
|
|
347
|
+
Mage Pro is a powered-up platform built for teams.
|
|
348
|
+
It adds everything you need for production pipelines, at scale.
|
|
349
|
+
|
|
350
|
+
- Magical AI-assisted development and debugging
|
|
351
|
+
- Multi-environment orchestration
|
|
352
|
+
- Role-based access control
|
|
353
|
+
- Real-time monitoring & alerts
|
|
354
|
+
- Powerful CI/CD & version control
|
|
355
|
+
- Powerful enterprise features
|
|
356
|
+
- Available fully managed, hybrid, or on-premises
|
|
357
|
+
|
|
358
|
+
[**Try Mage Pro free →**](https://mage.ai)
|