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.

Files changed (166) hide show
  1. mage_ai/api/resources/GitFileResource.py +8 -0
  2. mage_ai/cli/main.py +6 -1
  3. mage_ai/data_preparation/executors/block_executor.py +8 -3
  4. mage_ai/data_preparation/executors/pipeline_executor.py +35 -19
  5. mage_ai/data_preparation/git/utils.py +2 -2
  6. mage_ai/data_preparation/logging/logger_manager.py +18 -2
  7. mage_ai/data_preparation/models/block/__init__.py +29 -22
  8. mage_ai/data_preparation/models/block/outputs.py +7 -1
  9. mage_ai/data_preparation/models/constants.py +2 -0
  10. mage_ai/data_preparation/storage/local_storage.py +4 -1
  11. mage_ai/io/config.py +1 -0
  12. mage_ai/io/mssql.py +16 -9
  13. mage_ai/io/postgres.py +3 -0
  14. mage_ai/orchestration/db/migrations/versions/39d36f1dab73_create_genericjob.py +47 -0
  15. mage_ai/orchestration/db/models/oauth.py +2 -1
  16. mage_ai/orchestration/db/models/schedules.py +105 -0
  17. mage_ai/orchestration/job_manager.py +19 -0
  18. mage_ai/orchestration/notification/sender.py +2 -2
  19. mage_ai/orchestration/pipeline_scheduler_original.py +146 -1
  20. mage_ai/orchestration/queue/config.py +11 -1
  21. mage_ai/orchestration/queue/process_queue.py +2 -0
  22. mage_ai/server/api/base.py +41 -0
  23. mage_ai/server/api/constants.py +1 -0
  24. mage_ai/server/constants.py +1 -1
  25. mage_ai/server/frontend_dist/404.html +2 -2
  26. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-3881267993576e2c.js +1 -0
  27. mage_ai/server/frontend_dist/_next/static/{qR0jauUABqPaFMjUsYeoG → yqYUo8S74SIsh2zOwDJBS}/_buildManifest.js +1 -1
  28. mage_ai/server/frontend_dist/block-layout.html +2 -2
  29. mage_ai/server/frontend_dist/compute.html +2 -2
  30. mage_ai/server/frontend_dist/files.html +2 -2
  31. mage_ai/server/frontend_dist/global-data-products/[...slug].html +2 -2
  32. mage_ai/server/frontend_dist/global-data-products.html +2 -2
  33. mage_ai/server/frontend_dist/global-hooks/[...slug].html +2 -2
  34. mage_ai/server/frontend_dist/global-hooks.html +2 -2
  35. mage_ai/server/frontend_dist/index.html +2 -2
  36. mage_ai/server/frontend_dist/manage/files.html +2 -2
  37. mage_ai/server/frontend_dist/manage/overview.html +2 -2
  38. mage_ai/server/frontend_dist/manage/pipeline-runs.html +2 -2
  39. mage_ai/server/frontend_dist/manage/settings.html +2 -2
  40. mage_ai/server/frontend_dist/manage/users/[user].html +2 -2
  41. mage_ai/server/frontend_dist/manage/users/new.html +2 -2
  42. mage_ai/server/frontend_dist/manage/users.html +2 -2
  43. mage_ai/server/frontend_dist/manage.html +2 -2
  44. mage_ai/server/frontend_dist/oauth.html +3 -3
  45. mage_ai/server/frontend_dist/overview.html +2 -2
  46. mage_ai/server/frontend_dist/pipeline-runs.html +2 -2
  47. mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills/[...slug].html +2 -2
  48. mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills.html +2 -2
  49. mage_ai/server/frontend_dist/pipelines/[pipeline]/dashboard.html +2 -2
  50. mage_ai/server/frontend_dist/pipelines/[pipeline]/edit.html +2 -2
  51. mage_ai/server/frontend_dist/pipelines/[pipeline]/logs.html +2 -2
  52. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runs.html +2 -2
  53. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
  54. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors.html +2 -2
  55. mage_ai/server/frontend_dist/pipelines/[pipeline]/runs/[run].html +2 -2
  56. mage_ai/server/frontend_dist/pipelines/[pipeline]/runs.html +2 -2
  57. mage_ai/server/frontend_dist/pipelines/[pipeline]/settings.html +2 -2
  58. mage_ai/server/frontend_dist/pipelines/[pipeline]/syncs.html +2 -2
  59. mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers/[...slug].html +2 -2
  60. mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers.html +2 -2
  61. mage_ai/server/frontend_dist/pipelines/[pipeline].html +2 -2
  62. mage_ai/server/frontend_dist/pipelines.html +2 -2
  63. mage_ai/server/frontend_dist/platform/global-hooks/[...slug].html +2 -2
  64. mage_ai/server/frontend_dist/platform/global-hooks.html +2 -2
  65. mage_ai/server/frontend_dist/settings/account/profile.html +2 -2
  66. mage_ai/server/frontend_dist/settings/platform/preferences.html +2 -2
  67. mage_ai/server/frontend_dist/settings/platform/settings.html +2 -2
  68. mage_ai/server/frontend_dist/settings/workspace/permissions/[...slug].html +2 -2
  69. mage_ai/server/frontend_dist/settings/workspace/permissions.html +2 -2
  70. mage_ai/server/frontend_dist/settings/workspace/preferences.html +2 -2
  71. mage_ai/server/frontend_dist/settings/workspace/roles/[...slug].html +2 -2
  72. mage_ai/server/frontend_dist/settings/workspace/roles.html +2 -2
  73. mage_ai/server/frontend_dist/settings/workspace/sync-data.html +2 -2
  74. mage_ai/server/frontend_dist/settings/workspace/users/[...slug].html +2 -2
  75. mage_ai/server/frontend_dist/settings/workspace/users.html +2 -2
  76. mage_ai/server/frontend_dist/settings.html +2 -2
  77. mage_ai/server/frontend_dist/sign-in.html +5 -5
  78. mage_ai/server/frontend_dist/templates/[...slug].html +2 -2
  79. mage_ai/server/frontend_dist/templates.html +2 -2
  80. mage_ai/server/frontend_dist/terminal.html +2 -2
  81. mage_ai/server/frontend_dist/test.html +2 -2
  82. mage_ai/server/frontend_dist/triggers.html +2 -2
  83. mage_ai/server/frontend_dist/v2/canvas.html +2 -2
  84. mage_ai/server/frontend_dist/v2.html +2 -2
  85. mage_ai/server/frontend_dist/version-control.html +2 -2
  86. mage_ai/server/frontend_dist_base_path_template/404.html +2 -2
  87. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/edit-3881267993576e2c.js +1 -0
  88. mage_ai/server/frontend_dist_base_path_template/_next/static/{iCySon3_GCldnbC5U7C-s → xAmU_ZNdoOy8aaJdtbt_F}/_buildManifest.js +1 -1
  89. mage_ai/server/frontend_dist_base_path_template/block-layout.html +2 -2
  90. mage_ai/server/frontend_dist_base_path_template/compute.html +2 -2
  91. mage_ai/server/frontend_dist_base_path_template/files.html +2 -2
  92. mage_ai/server/frontend_dist_base_path_template/global-data-products/[...slug].html +2 -2
  93. mage_ai/server/frontend_dist_base_path_template/global-data-products.html +2 -2
  94. mage_ai/server/frontend_dist_base_path_template/global-hooks/[...slug].html +2 -2
  95. mage_ai/server/frontend_dist_base_path_template/global-hooks.html +2 -2
  96. mage_ai/server/frontend_dist_base_path_template/index.html +2 -2
  97. mage_ai/server/frontend_dist_base_path_template/manage/files.html +2 -2
  98. mage_ai/server/frontend_dist_base_path_template/manage/overview.html +2 -2
  99. mage_ai/server/frontend_dist_base_path_template/manage/pipeline-runs.html +2 -2
  100. mage_ai/server/frontend_dist_base_path_template/manage/settings.html +2 -2
  101. mage_ai/server/frontend_dist_base_path_template/manage/users/[user].html +2 -2
  102. mage_ai/server/frontend_dist_base_path_template/manage/users/new.html +2 -2
  103. mage_ai/server/frontend_dist_base_path_template/manage/users.html +2 -2
  104. mage_ai/server/frontend_dist_base_path_template/manage.html +2 -2
  105. mage_ai/server/frontend_dist_base_path_template/oauth.html +3 -3
  106. mage_ai/server/frontend_dist_base_path_template/overview.html +2 -2
  107. mage_ai/server/frontend_dist_base_path_template/pipeline-runs.html +2 -2
  108. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills/[...slug].html +2 -2
  109. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills.html +2 -2
  110. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/dashboard.html +2 -2
  111. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/edit.html +2 -2
  112. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/logs.html +2 -2
  113. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runs.html +2 -2
  114. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
  115. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors.html +2 -2
  116. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs/[run].html +2 -2
  117. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs.html +2 -2
  118. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/settings.html +2 -2
  119. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/syncs.html +2 -2
  120. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers/[...slug].html +2 -2
  121. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers.html +2 -2
  122. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline].html +2 -2
  123. mage_ai/server/frontend_dist_base_path_template/pipelines.html +2 -2
  124. mage_ai/server/frontend_dist_base_path_template/platform/global-hooks/[...slug].html +2 -2
  125. mage_ai/server/frontend_dist_base_path_template/platform/global-hooks.html +2 -2
  126. mage_ai/server/frontend_dist_base_path_template/settings/account/profile.html +2 -2
  127. mage_ai/server/frontend_dist_base_path_template/settings/platform/preferences.html +2 -2
  128. mage_ai/server/frontend_dist_base_path_template/settings/platform/settings.html +2 -2
  129. mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions/[...slug].html +2 -2
  130. mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions.html +2 -2
  131. mage_ai/server/frontend_dist_base_path_template/settings/workspace/preferences.html +2 -2
  132. mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles/[...slug].html +2 -2
  133. mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles.html +2 -2
  134. mage_ai/server/frontend_dist_base_path_template/settings/workspace/sync-data.html +2 -2
  135. mage_ai/server/frontend_dist_base_path_template/settings/workspace/users/[...slug].html +2 -2
  136. mage_ai/server/frontend_dist_base_path_template/settings/workspace/users.html +2 -2
  137. mage_ai/server/frontend_dist_base_path_template/settings.html +2 -2
  138. mage_ai/server/frontend_dist_base_path_template/sign-in.html +5 -5
  139. mage_ai/server/frontend_dist_base_path_template/templates/[...slug].html +2 -2
  140. mage_ai/server/frontend_dist_base_path_template/templates.html +2 -2
  141. mage_ai/server/frontend_dist_base_path_template/terminal.html +2 -2
  142. mage_ai/server/frontend_dist_base_path_template/test.html +2 -2
  143. mage_ai/server/frontend_dist_base_path_template/triggers.html +2 -2
  144. mage_ai/server/frontend_dist_base_path_template/v2/canvas.html +2 -2
  145. mage_ai/server/frontend_dist_base_path_template/v2.html +2 -2
  146. mage_ai/server/frontend_dist_base_path_template/version-control.html +2 -2
  147. mage_ai/server/scheduler_manager.py +2 -0
  148. mage_ai/server/terminal_server.py +3 -0
  149. mage_ai/settings/server.py +3 -1
  150. mage_ai/streaming/sources/kafka.py +2 -1
  151. mage_ai/tests/data_preparation/executors/test_block_executor.py +3 -3
  152. mage_ai/tests/data_preparation/logging/test_logger_manager.py +24 -5
  153. mage_ai/tests/data_preparation/models/test_variable.py +2 -0
  154. mage_ai/tests/io/create_table/test_postgresql.py +3 -2
  155. mage_ai/tests/orchestration/notification/test_sender.py +5 -1
  156. mage_ai/tests/streaming/sources/test_kafka.py +2 -2
  157. {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/METADATA +72 -107
  158. {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/RECORD +164 -163
  159. {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/WHEEL +1 -1
  160. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-432da20df91511fb.js +0 -1
  161. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/edit-432da20df91511fb.js +0 -1
  162. /mage_ai/server/frontend_dist/_next/static/{qR0jauUABqPaFMjUsYeoG → yqYUo8S74SIsh2zOwDJBS}/_ssgManifest.js +0 -0
  163. /mage_ai/server/frontend_dist_base_path_template/_next/static/{iCySon3_GCldnbC5U7C-s → xAmU_ZNdoOy8aaJdtbt_F}/_ssgManifest.js +0 -0
  164. {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/entry_points.txt +0 -0
  165. {mage_ai-0.9.76.dist-info → mage_ai-0.9.78.dist-info}/licenses/LICENSE +0 -0
  166. {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=True,
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=True,
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.76
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: polars<0.19.2,>=0.18.0
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
- <div align="left">
233
- <h1>Mage AI</h1>
234
+ # Mage OSS
234
235
 
235
- <p>Give your data team magical powers.</p>
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
- <a href="https://cloud.mage.ai/sign-up">
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
- <br />
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
- Mage is a hybrid framework for transforming and integrating data. It combines the best of both worlds: the flexibility of notebooks with the rigor of modular code.
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
- - Extract and synchronize data from 3rd party sources.
261
- - Transform data with real-time and batch pipelines using Python, SQL, and R.
262
- - Load data into your data warehouse or data lake using our pre-built connectors.
263
- - Run, monitor, and orchestrate thousands of pipelines without losing sleep.
248
+ [![GitHub Stars](https://img.shields.io/github/stars/mage-ai/mage-ai?style=for-the-badge&labelColor=000000&color=1C1C1C)](https://github.com/mage-ai/mage-ai/stargazers)
249
+ [![Docker Pulls](https://img.shields.io/docker/pulls/mageai/mageai?style=for-the-badge&labelColor=000000&color=1C1C1C)](https://hub.docker.com/r/mageai/mageai)
250
+ [![Slack Community](https://img.shields.io/badge/Join%20the%20community-black.svg?style=for-the-badge&logo=lightning&labelColor=000000&color=1C1C1C)](https://www.mage.ai/chat)
251
+ [![License](https://img.shields.io/github/license/mage-ai/mage-ai?style=for-the-badge&labelColor=000000&color=1C1C1C)](https://github.com/mage-ai/mage-ai/blob/master/LICENSE)
264
252
 
265
253
  <br />
266
254
 
267
- Plus hundreds of enterprise-class features, infrastructure innovations, and magical surprises.
255
+ ## What you can do with Mage OSS
268
256
 
269
- <h1></h1>
257
+ - Build pipelines locally with Python, SQL, or R in a modular notebook-style UI
270
258
 
271
- #### Available in two spellbinding versions
259
+ - Run jobs manually or on a schedule (cron supported)
272
260
 
273
- <br />
261
+ - Connect to databases, APIs, and cloud storage with prebuilt connectors
274
262
 
275
- <table style="width: 100%; border: none;" cellspacing="0" cellpadding="0" border="0">
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
- <br />
265
+ - Set up quickly with Docker, pip, or conda — no cloud account required
295
266
 
296
- <a href="https://cloud.mage.ai/sign-up">
297
- <img alt="Try out Mage Pro" src="https://img.shields.io/badge/try%20it%20out%20now-black.svg?style=for-the-badge&logo=artifacthub&labelColor=6A35FF&logoColor=FFFFFF&label=mage%20pro&color=6A35FF">
298
- </a>
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
- <div align="left">
272
+ <br /><br />
304
273
 
305
- # It’s magic.
274
+ ## Start local. Scale when you're ready.
306
275
 
307
- <p align="left">
308
- For documentation on getting started, how to develop, and how to deploy to production check out the live
309
- <br />
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
- ## 🏃‍♀️ Install
282
+ ### Quickstart
319
283
 
320
- The recommended way to install the latest version of Mage is through Docker with the following command:
284
+ Install using Docker (recommended):
321
285
 
322
286
  ```bash
323
287
  docker pull mageai/mageai:latest
324
288
  ```
325
289
 
326
- You can also install Mage using pip or conda, though this may cause dependency issues without the proper environment.
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
- Looking for help? The _fastest_ way to get started is by checking out our documentation [here](https://docs.mage.ai/getting-started/setup).
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
- ## 🎮 Demo
304
+ <br />
340
305
 
341
- ### Live demo
306
+ ## Core Features
342
307
 
343
- Build and run a data pipeline with our <b>[demo app](https://demo.mage.ai/)</b>.
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
- > WARNING
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
- [![Mage quick start demo](https://github.com/mage-ai/assets/blob/main/overview/overview-video.png?raw=True)](https://youtu.be/GswOdShLGmg)
319
+ ## Example Use Cases
351
320
 
352
- <sub><i>Click the image to play video</i></sub>
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
- ## 🔮 [Features](https://docs.mage.ai/about/features)
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
- <br />
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
- 1. Load data ➝
373
- ```python
374
- @data_loader
375
- def load_csv_from_file() -> pl.DataFrame:
376
- return pl.read_csv('default_repo/titanic.csv')
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
- [<img alt="Water mage casting spell" height="300" src="https://github.com/mage-ai/assets/blob/main/mage-water-charging-up.svg?raw=True" />](https://www.mage.ai/)
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)