mage-ai


Namemage-ai JSON
Version 0.9.75 PyPI version JSON
download
home_pagehttps://github.com/mage-ai/mage-ai
SummaryMage is a tool for building and deploying data pipelines.
upload_time2024-12-04 07:27:12
maintainerNone
docs_urlNone
authorMage
requires_python>=3.7
licenseNone
keywords
VCS
bugtrack_url
requirements cachetools Faker GitPython Jinja2 Pillow PyGithub PyJWT aiofiles aiohttp alembic bcrypt croniter cryptography dask datadog freezegun great-expectations httpx inflection ipykernel ipython itsdangerous joblib jupyter-server jupyter_client ldap3 memory_profiler newrelic numpy pandas polars protobuf psutil pyarrow python-dateutil pytz pyyaml redis requests ruamel.yaml scikit-learn sentry-sdk setuptools simplejson six sqlalchemy sqlglot terminado thefuzz tornado typer typing_extensions watchdog Werkzeug astor aws-secretsmanager-caching boto3 botocore clickhouse-connect db-dtypes duckdb google-api-core google-api-python-client google-cloud-bigquery google-cloud-iam google-cloud-pubsub google-cloud-run google-cloud-storage gspread kubernetes langchain langchain_community mysql-connector-python mysql-connector-python openai opentelemetry-api opentelemetry-exporter-prometheus opentelemetry-instrumentation-tornado opentelemetry-exporter-otlp opentelemetry-instrumentation-sqlalchemy oracledb oracledb pinotdb prometheus_client psycopg2 psycopg2-binary pyairtable pydruid pyodbc pyodbc redshift-connector lxml snowflake-connector-python sshtunnel tables tables trino azure-eventhub azure-identity azure-keyvault-secrets azure-keyvault-certificates azure-mgmt-containerinstance azure-storage-blob confluent-avro elasticsearch influxdb_client kafka-python nats-py nkeys nkeys opensearch-py pika pymongo requests_aws4auth stomp.py dbt-bigquery dbt-clickhouse dbt-core dbt-duckdb dbt-postgres dbt-redshift dbt-snowflake dbt-spark dbt-sqlserver dbt-trino async-timeout attrs attrs backoff clickhouse_sqlalchemy deltalake facebook_business gnupg google-analytics-data google-analytics-data google-cloud-bigquery-storage google-cloud-bigquery-storage httpx pendulum pendulum pymongo_schema python-magic redshift-connector requests_mock simple_salesforce singer_sdk stripe terminaltables twitter-ads tzlocal xlsx2csv xmltodict zenpy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="left">
  <h1>Mage AI</h1>

  <p>Give your data team magical powers.</p>

<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>
<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>
<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>
<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>

</div>

<br />

<a href="https://mage.ai/pro">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://github.com/mage-ai/assets/blob/main/oss/hero.png?raw=true">
    <img alt="Mage AI hero" src="https://github.com/mage-ai/assets/blob/main/oss/hero.png?raw=true" />
  </picture>
</a>

<br />
<br />

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.

<br />

- Extract and synchronize data from 3rd party sources.
- Transform data with real-time and batch pipelines using Python, SQL, and R.
- Load data into your data warehouse or data lake using our pre-built connectors.
- Run, monitor, and orchestrate thousands of pipelines without losing sleep.

<br />

Plus hundreds of enterprise-class features, infrastructure innovations, and magical surprises.

<h1></h1>

#### Available in two spellbinding versions

<br />

<table style="width: 100%; border: none;" cellspacing="0" cellpadding="0" border="0">
  <tr>
    <td rowspan="2">
      <a href="https://mage.ai/pro">
        <img alt="Mage Pro" width="124" align="left" src="https://github.com/mage-ai/assets/blob/main/oss/card-pro.png?raw=true" />
      </a>
      <b>For teams.</b> Fully managed platform
      for integrating and transforming data.
    </td>
    <td rowspan="2">
      <a href="https://github.com/mage-ai/mage-ai?tab=readme-ov-file#its-magic">
        <img alt="Mage OSS" width="124" align="left" src="https://github.com/mage-ai/assets/blob/main/oss/card-oss.png?raw=true" />
      </a>
      <b>Self-hosted.</b> System to build, run, and
      manage data pipelines.
    </td>
  </tr>
</table>

<br />

<a href="https://mage.ai/pro">
  <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">
</a>

<br />
<br />

<div align="left">

# Itโ€™s magic.

<p align="left">
  For documentation on getting started, how to develop, and how to deploy to production check out the live 
  <br />
  <a
    href="https://docs.mage.ai?source=github"
    target="_blank"
  ><b>Developer documentation portal</b></a>.
</p>

<br />

## ๐Ÿƒโ€โ™€๏ธ Install

The recommended way to install the latest version of Mage is through Docker with the following command:

```bash
docker pull mageai/mageai:latest
```

You can also install Mage using pip or conda, though this may cause dependency issues without the proper environment.

```bash
pip install mage-ai
```
```bash
conda install -c conda-forge mage-ai
```

Looking for help? The _fastest_ way to get started is by checking out our documentation [here](https://docs.mage.ai/getting-started/setup).

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).

## ๐ŸŽฎ Demo

### Live demo

Build and run a data pipeline with our <b>[demo app](https://demo.mage.ai/)</b>.

> WARNING
>
> The live demo is public to everyone, please donโ€™t save anything sensitive (e.g. passwords, secrets, etc).
### Demo video (5 min)

[![Mage quick start demo](https://github.com/mage-ai/assets/blob/main/overview/overview-video.png?raw=True)](https://youtu.be/GswOdShLGmg)

<sub><i>Click the image to play video</i></sub>

<br />

## ๐Ÿ”ฎ [Features](https://docs.mage.ai/about/features)

|   |   |   |
| --- | --- | --- |
| ๐ŸŽถ | <b>[Orchestration](https://docs.mage.ai/design/data-pipeline-management)</b> | Schedule and manage data pipelines with observability. |
| ๐Ÿ““ | <b>[Notebook](https://docs.mage.ai/about/features#notebook-for-building-data-pipelines)</b> | Interactive Python, SQL, & R editor for coding data pipelines. |
| ๐Ÿ—๏ธ | <b>[Data integrations](https://docs.mage.ai/data-integrations/overview)</b> | Synchronize data from 3rd party sources to your internal destinations. |
| ๐Ÿšฐ | <b>[Streaming pipelines](https://docs.mage.ai/guides/streaming-pipeline)</b> | Ingest and transform real-time data. |
| โŽ | <b>[dbt](https://docs.mage.ai/dbt/overview)</b> | Build, run, and manage your dbt models with Mage. |

<br />

<b>A sample data pipeline defined across 3 files โž</b>

<br />

1. Load data โž
    ```python
    @data_loader
    def load_csv_from_file() -> pl.DataFrame:
        return pl.read_csv('default_repo/titanic.csv')
    ```
1. Transform data โž
    ```python
    @transformer
    def select_columns_from_df(df: pl.DataFrame, *args) -> pl.DataFrame:
        return df[['Age', 'Fare', 'Survived']]
    ```
1. Export data โž
    ```python
    @data_exporter
    def export_titanic_data_to_disk(df: pl.DataFrame) -> None:
        df.to_csv('default_repo/titanic_transformed.csv')
    ```

<br />

[<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/)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/mage-ai/mage-ai",
    "name": "mage-ai",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": null,
    "author": "Mage",
    "author_email": "eng@mage.ai",
    "download_url": "https://files.pythonhosted.org/packages/56/17/34d00ddab8b09bbfebaaaaebbd731a57209790269acb57136efea3038b80/mage_ai-0.9.75.tar.gz",
    "platform": null,
    "description": "<div align=\"left\">\n  <h1>Mage AI</h1>\n\n  <p>Give your data team magical powers.</p>\n\n<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>\n<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>\n<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>\n<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>\n\n</div>\n\n<br />\n\n<a href=\"https://mage.ai/pro\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/mage-ai/assets/blob/main/oss/hero.png?raw=true\">\n    <img alt=\"Mage AI hero\" src=\"https://github.com/mage-ai/assets/blob/main/oss/hero.png?raw=true\" />\n  </picture>\n</a>\n\n<br />\n<br />\n\nMage 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.\n\n<br />\n\n- Extract and synchronize data from 3rd party sources.\n- Transform data with real-time and batch pipelines using Python, SQL, and R.\n- Load data into your data warehouse or data lake using our pre-built connectors.\n- Run, monitor, and orchestrate thousands of pipelines without losing sleep.\n\n<br />\n\nPlus hundreds of enterprise-class features, infrastructure innovations, and magical surprises.\n\n<h1></h1>\n\n#### Available in two spellbinding versions\n\n<br />\n\n<table style=\"width: 100%; border: none;\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n  <tr>\n    <td rowspan=\"2\">\n      <a href=\"https://mage.ai/pro\">\n        <img alt=\"Mage Pro\" width=\"124\" align=\"left\" src=\"https://github.com/mage-ai/assets/blob/main/oss/card-pro.png?raw=true\" />\n      </a>\n      <b>For teams.</b> Fully managed platform\n      for integrating and transforming data.\n    </td>\n    <td rowspan=\"2\">\n      <a href=\"https://github.com/mage-ai/mage-ai?tab=readme-ov-file#its-magic\">\n        <img alt=\"Mage OSS\" width=\"124\" align=\"left\" src=\"https://github.com/mage-ai/assets/blob/main/oss/card-oss.png?raw=true\" />\n      </a>\n      <b>Self-hosted.</b> System to build, run, and\n      manage data pipelines.\n    </td>\n  </tr>\n</table>\n\n<br />\n\n<a href=\"https://mage.ai/pro\">\n  <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\">\n</a>\n\n<br />\n<br />\n\n<div align=\"left\">\n\n# It\u2019s magic.\n\n<p align=\"left\">\n  For documentation on getting started, how to develop, and how to deploy to production check out the live \n  <br />\n  <a\n    href=\"https://docs.mage.ai?source=github\"\n    target=\"_blank\"\n  ><b>Developer documentation portal</b></a>.\n</p>\n\n<br />\n\n## \ud83c\udfc3\u200d\u2640\ufe0f Install\n\nThe recommended way to install the latest version of Mage is through Docker with the following command:\n\n```bash\ndocker pull mageai/mageai:latest\n```\n\nYou can also install Mage using pip or conda, though this may cause dependency issues without the proper environment.\n\n```bash\npip install mage-ai\n```\n```bash\nconda install -c conda-forge mage-ai\n```\n\nLooking for help? The _fastest_ way to get started is by checking out our documentation [here](https://docs.mage.ai/getting-started/setup).\n\nLooking 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).\n\n## \ud83c\udfae Demo\n\n### Live demo\n\nBuild and run a data pipeline with our <b>[demo app](https://demo.mage.ai/)</b>.\n\n> WARNING\n>\n> The live demo is public to everyone, please don\u2019t save anything sensitive (e.g. passwords, secrets, etc).\n### Demo video (5 min)\n\n[![Mage quick start demo](https://github.com/mage-ai/assets/blob/main/overview/overview-video.png?raw=True)](https://youtu.be/GswOdShLGmg)\n\n<sub><i>Click the image to play video</i></sub>\n\n<br />\n\n## \ud83d\udd2e [Features](https://docs.mage.ai/about/features)\n\n|   |   |   |\n| --- | --- | --- |\n| \ud83c\udfb6 | <b>[Orchestration](https://docs.mage.ai/design/data-pipeline-management)</b> | Schedule and manage data pipelines with observability. |\n| \ud83d\udcd3 | <b>[Notebook](https://docs.mage.ai/about/features#notebook-for-building-data-pipelines)</b> | Interactive Python, SQL, & R editor for coding data pipelines. |\n| \ud83c\udfd7\ufe0f | <b>[Data integrations](https://docs.mage.ai/data-integrations/overview)</b> | Synchronize data from 3rd party sources to your internal destinations. |\n| \ud83d\udeb0 | <b>[Streaming pipelines](https://docs.mage.ai/guides/streaming-pipeline)</b> | Ingest and transform real-time data. |\n| \u274e | <b>[dbt](https://docs.mage.ai/dbt/overview)</b> | Build, run, and manage your dbt models with Mage. |\n\n<br />\n\n<b>A sample data pipeline defined across 3 files \u279d</b>\n\n<br />\n\n1. Load data \u279d\n    ```python\n    @data_loader\n    def load_csv_from_file() -> pl.DataFrame:\n        return pl.read_csv('default_repo/titanic.csv')\n    ```\n1. Transform data \u279d\n    ```python\n    @transformer\n    def select_columns_from_df(df: pl.DataFrame, *args) -> pl.DataFrame:\n        return df[['Age', 'Fare', 'Survived']]\n    ```\n1. Export data \u279d\n    ```python\n    @data_exporter\n    def export_titanic_data_to_disk(df: pl.DataFrame) -> None:\n        df.to_csv('default_repo/titanic_transformed.csv')\n    ```\n\n<br />\n\n[<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/)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Mage is a tool for building and deploying data pipelines.",
    "version": "0.9.75",
    "project_urls": {
        "Homepage": "https://github.com/mage-ai/mage-ai"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0d0bad619fcd5a48853e614463d20414ffbe57e782f0e94abe86a090886a17ba",
                "md5": "ddfa957a5a9c5bbe263a303e27b917f1",
                "sha256": "5c69846c4538943bd3471b440ee386d05eb01d3e34851d97f82ed12a343e2989"
            },
            "downloads": -1,
            "filename": "mage_ai-0.9.75-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ddfa957a5a9c5bbe263a303e27b917f1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 39905877,
            "upload_time": "2024-12-04T07:27:08",
            "upload_time_iso_8601": "2024-12-04T07:27:08.336062Z",
            "url": "https://files.pythonhosted.org/packages/0d/0b/ad619fcd5a48853e614463d20414ffbe57e782f0e94abe86a090886a17ba/mage_ai-0.9.75-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "561734d00ddab8b09bbfebaaaaebbd731a57209790269acb57136efea3038b80",
                "md5": "156667d462f1b8c0debc8c133299a21d",
                "sha256": "0852b564985904c26d6dd1dda27379b706fb05f065129047bde3cb2eb2cce3a1"
            },
            "downloads": -1,
            "filename": "mage_ai-0.9.75.tar.gz",
            "has_sig": false,
            "md5_digest": "156667d462f1b8c0debc8c133299a21d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 38082682,
            "upload_time": "2024-12-04T07:27:12",
            "upload_time_iso_8601": "2024-12-04T07:27:12.618822Z",
            "url": "https://files.pythonhosted.org/packages/56/17/34d00ddab8b09bbfebaaaaebbd731a57209790269acb57136efea3038b80/mage_ai-0.9.75.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-04 07:27:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mage-ai",
    "github_project": "mage-ai",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "cachetools",
            "specs": []
        },
        {
            "name": "Faker",
            "specs": [
                [
                    "==",
                    "4.14.0"
                ]
            ]
        },
        {
            "name": "GitPython",
            "specs": [
                [
                    "==",
                    "3.1.41"
                ]
            ]
        },
        {
            "name": "Jinja2",
            "specs": [
                [
                    "==",
                    "3.1.3"
                ]
            ]
        },
        {
            "name": "Pillow",
            "specs": [
                [
                    "==",
                    "10.3.0"
                ]
            ]
        },
        {
            "name": "PyGithub",
            "specs": [
                [
                    "==",
                    "1.59.0"
                ]
            ]
        },
        {
            "name": "PyJWT",
            "specs": [
                [
                    "==",
                    "2.6.0"
                ]
            ]
        },
        {
            "name": "aiofiles",
            "specs": [
                [
                    "==",
                    "22.1.0"
                ]
            ]
        },
        {
            "name": "aiohttp",
            "specs": [
                [
                    "==",
                    "3.10.0"
                ]
            ]
        },
        {
            "name": "alembic",
            "specs": [
                [
                    ">=",
                    "1.7.5"
                ]
            ]
        },
        {
            "name": "bcrypt",
            "specs": [
                [
                    "==",
                    "4.0.1"
                ]
            ]
        },
        {
            "name": "croniter",
            "specs": [
                [
                    "==",
                    "1.3.7"
                ]
            ]
        },
        {
            "name": "cryptography",
            "specs": [
                [
                    "==",
                    "42.0.0"
                ]
            ]
        },
        {
            "name": "dask",
            "specs": [
                [
                    ">=",
                    "2022.2.0"
                ]
            ]
        },
        {
            "name": "datadog",
            "specs": [
                [
                    "==",
                    "0.44.0"
                ]
            ]
        },
        {
            "name": "freezegun",
            "specs": [
                [
                    "==",
                    "1.2.2"
                ]
            ]
        },
        {
            "name": "great-expectations",
            "specs": [
                [
                    "==",
                    "0.18.12"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": [
                [
                    "==",
                    "0.23.1"
                ]
            ]
        },
        {
            "name": "inflection",
            "specs": [
                [
                    "==",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "ipykernel",
            "specs": [
                [
                    "==",
                    "6.15.0"
                ]
            ]
        },
        {
            "name": "ipython",
            "specs": [
                [
                    "==",
                    "8.10.0"
                ]
            ]
        },
        {
            "name": "itsdangerous",
            "specs": [
                [
                    "~=",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "joblib",
            "specs": [
                [
                    ">=",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "jupyter-server",
            "specs": [
                [
                    "==",
                    "2.14.1"
                ]
            ]
        },
        {
            "name": "jupyter_client",
            "specs": [
                [
                    "==",
                    "7.4.4"
                ]
            ]
        },
        {
            "name": "ldap3",
            "specs": [
                [
                    "==",
                    "2.9.1"
                ]
            ]
        },
        {
            "name": "memory_profiler",
            "specs": []
        },
        {
            "name": "newrelic",
            "specs": [
                [
                    "==",
                    "8.8.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.22.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "polars",
            "specs": [
                [
                    "<",
                    "0.19.2"
                ],
                [
                    ">=",
                    "0.18.0"
                ]
            ]
        },
        {
            "name": "protobuf",
            "specs": [
                [
                    "~=",
                    "4.21.12"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    "==",
                    "5.9.8"
                ]
            ]
        },
        {
            "name": "pyarrow",
            "specs": [
                [
                    ">=",
                    "14.0.1"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.8.2"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    ">=",
                    "2022.2.1"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": [
                [
                    "~=",
                    "6.0"
                ]
            ]
        },
        {
            "name": "redis",
            "specs": [
                [
                    "~=",
                    "5.0.1"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "~=",
                    "2.31.0"
                ]
            ]
        },
        {
            "name": "ruamel.yaml",
            "specs": [
                [
                    "==",
                    "0.17.17"
                ]
            ]
        },
        {
            "name": "scikit-learn",
            "specs": [
                [
                    ">=",
                    "1.0"
                ]
            ]
        },
        {
            "name": "sentry-sdk",
            "specs": [
                [
                    "==",
                    "1.19.1"
                ]
            ]
        },
        {
            "name": "setuptools",
            "specs": [
                [
                    "==",
                    "70.0.0"
                ]
            ]
        },
        {
            "name": "simplejson",
            "specs": []
        },
        {
            "name": "six",
            "specs": [
                [
                    ">=",
                    "1.15.0"
                ]
            ]
        },
        {
            "name": "sqlalchemy",
            "specs": [
                [
                    ">=",
                    "1.4.20"
                ],
                [
                    "<",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "sqlglot",
            "specs": []
        },
        {
            "name": "terminado",
            "specs": [
                [
                    "==",
                    "0.17.1"
                ]
            ]
        },
        {
            "name": "thefuzz",
            "specs": [
                [
                    "==",
                    "0.19.0"
                ]
            ]
        },
        {
            "name": "tornado",
            "specs": [
                [
                    "==",
                    "6.3.3"
                ]
            ]
        },
        {
            "name": "typer",
            "specs": [
                [
                    "==",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "typing_extensions",
            "specs": [
                [
                    "==",
                    "4.10.0"
                ]
            ]
        },
        {
            "name": "watchdog",
            "specs": [
                [
                    "==",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "Werkzeug",
            "specs": [
                [
                    "==",
                    "3.0.3"
                ]
            ]
        },
        {
            "name": "astor",
            "specs": [
                [
                    ">=",
                    "0.8.1"
                ]
            ]
        },
        {
            "name": "aws-secretsmanager-caching",
            "specs": [
                [
                    "==",
                    "1.1.1.5"
                ]
            ]
        },
        {
            "name": "boto3",
            "specs": [
                [
                    "==",
                    "1.26.60"
                ]
            ]
        },
        {
            "name": "botocore",
            "specs": [
                [
                    "==",
                    "1.29.60"
                ]
            ]
        },
        {
            "name": "clickhouse-connect",
            "specs": [
                [
                    "~=",
                    "0.6.23"
                ]
            ]
        },
        {
            "name": "db-dtypes",
            "specs": [
                [
                    "==",
                    "1.0.5"
                ]
            ]
        },
        {
            "name": "duckdb",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "google-api-core",
            "specs": [
                [
                    "~=",
                    "2.15.0"
                ]
            ]
        },
        {
            "name": "google-api-python-client",
            "specs": [
                [
                    "~=",
                    "2.70.0"
                ]
            ]
        },
        {
            "name": "google-cloud-bigquery",
            "specs": [
                [
                    "~=",
                    "3.14.1"
                ]
            ]
        },
        {
            "name": "google-cloud-iam",
            "specs": [
                [
                    "~=",
                    "2.13.0"
                ]
            ]
        },
        {
            "name": "google-cloud-pubsub",
            "specs": [
                [
                    "~=",
                    "2.19.0"
                ]
            ]
        },
        {
            "name": "google-cloud-run",
            "specs": [
                [
                    "~=",
                    "0.10.1"
                ]
            ]
        },
        {
            "name": "google-cloud-storage",
            "specs": [
                [
                    "~=",
                    "2.5.0"
                ]
            ]
        },
        {
            "name": "gspread",
            "specs": [
                [
                    "==",
                    "5.7.2"
                ]
            ]
        },
        {
            "name": "kubernetes",
            "specs": [
                [
                    ">=",
                    "28.1.0"
                ]
            ]
        },
        {
            "name": "langchain",
            "specs": [
                [
                    "==",
                    "0.1.6"
                ]
            ]
        },
        {
            "name": "langchain_community",
            "specs": [
                [
                    "<",
                    "0.0.20"
                ]
            ]
        },
        {
            "name": "mysql-connector-python",
            "specs": [
                [
                    "~=",
                    "8.2.0"
                ]
            ]
        },
        {
            "name": "mysql-connector-python",
            "specs": [
                [
                    "~=",
                    "9.0.0"
                ]
            ]
        },
        {
            "name": "openai",
            "specs": [
                [
                    "==",
                    "1.39.0"
                ]
            ]
        },
        {
            "name": "opentelemetry-api",
            "specs": [
                [
                    "==",
                    "1.22.0"
                ]
            ]
        },
        {
            "name": "opentelemetry-exporter-prometheus",
            "specs": [
                [
                    "==",
                    "0.43b0"
                ]
            ]
        },
        {
            "name": "opentelemetry-instrumentation-tornado",
            "specs": [
                [
                    "==",
                    "0.43b0"
                ]
            ]
        },
        {
            "name": "opentelemetry-exporter-otlp",
            "specs": [
                [
                    "==",
                    "1.22.0"
                ]
            ]
        },
        {
            "name": "opentelemetry-instrumentation-sqlalchemy",
            "specs": [
                [
                    "==",
                    "0.43b0"
                ]
            ]
        },
        {
            "name": "oracledb",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "oracledb",
            "specs": [
                [
                    "==",
                    "2.4.1"
                ]
            ]
        },
        {
            "name": "pinotdb",
            "specs": [
                [
                    "==",
                    "5.1.0"
                ]
            ]
        },
        {
            "name": "prometheus_client",
            "specs": [
                [
                    ">=",
                    "0.18.0"
                ]
            ]
        },
        {
            "name": "psycopg2",
            "specs": [
                [
                    "==",
                    "2.9.3"
                ]
            ]
        },
        {
            "name": "psycopg2-binary",
            "specs": [
                [
                    "==",
                    "2.9.3"
                ]
            ]
        },
        {
            "name": "pyairtable",
            "specs": [
                [
                    "==",
                    "2.3.3"
                ]
            ]
        },
        {
            "name": "pydruid",
            "specs": [
                [
                    "==",
                    "0.6.5"
                ]
            ]
        },
        {
            "name": "pyodbc",
            "specs": [
                [
                    "==",
                    "4.0.35"
                ]
            ]
        },
        {
            "name": "pyodbc",
            "specs": [
                [
                    "==",
                    "5.0.1"
                ]
            ]
        },
        {
            "name": "redshift-connector",
            "specs": [
                [
                    "==",
                    "2.0.915"
                ]
            ]
        },
        {
            "name": "lxml",
            "specs": [
                [
                    "==",
                    "4.9.4"
                ]
            ]
        },
        {
            "name": "snowflake-connector-python",
            "specs": [
                [
                    "==",
                    "3.7.1"
                ]
            ]
        },
        {
            "name": "sshtunnel",
            "specs": [
                [
                    "==",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "tables",
            "specs": [
                [
                    "==",
                    "3.7.0"
                ]
            ]
        },
        {
            "name": "tables",
            "specs": [
                [
                    "==",
                    "3.10.1"
                ]
            ]
        },
        {
            "name": "trino",
            "specs": [
                [
                    "~=",
                    "0.326"
                ]
            ]
        },
        {
            "name": "azure-eventhub",
            "specs": [
                [
                    "==",
                    "5.11.2"
                ]
            ]
        },
        {
            "name": "azure-identity",
            "specs": [
                [
                    "==",
                    "1.12.0"
                ]
            ]
        },
        {
            "name": "azure-keyvault-secrets",
            "specs": [
                [
                    "==",
                    "4.6.0"
                ]
            ]
        },
        {
            "name": "azure-keyvault-certificates",
            "specs": [
                [
                    "==",
                    "4.6.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-containerinstance",
            "specs": [
                [
                    "==",
                    "10.1.0"
                ]
            ]
        },
        {
            "name": "azure-storage-blob",
            "specs": [
                [
                    "==",
                    "12.14.1"
                ]
            ]
        },
        {
            "name": "confluent-avro",
            "specs": [
                [
                    "~=",
                    "1.8.0"
                ]
            ]
        },
        {
            "name": "elasticsearch",
            "specs": [
                [
                    "==",
                    "8.15.1"
                ]
            ]
        },
        {
            "name": "influxdb_client",
            "specs": [
                [
                    "==",
                    "1.36.1"
                ]
            ]
        },
        {
            "name": "kafka-python",
            "specs": [
                [
                    "==",
                    "2.0.2"
                ]
            ]
        },
        {
            "name": "nats-py",
            "specs": [
                [
                    "==",
                    "2.6.0"
                ]
            ]
        },
        {
            "name": "nkeys",
            "specs": [
                [
                    "~=",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "nkeys",
            "specs": [
                [
                    "~=",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "opensearch-py",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "pika",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "pymongo",
            "specs": [
                [
                    "==",
                    "4.3.3"
                ]
            ]
        },
        {
            "name": "requests_aws4auth",
            "specs": [
                [
                    "==",
                    "1.1.2"
                ]
            ]
        },
        {
            "name": "stomp.py",
            "specs": [
                [
                    "==",
                    "8.1.0"
                ]
            ]
        },
        {
            "name": "dbt-bigquery",
            "specs": [
                [
                    "==",
                    "1.7.2"
                ]
            ]
        },
        {
            "name": "dbt-clickhouse",
            "specs": [
                [
                    "==",
                    "1.7.1"
                ]
            ]
        },
        {
            "name": "dbt-core",
            "specs": [
                [
                    "==",
                    "1.7.4"
                ]
            ]
        },
        {
            "name": "dbt-duckdb",
            "specs": [
                [
                    "==",
                    "1.7.0"
                ]
            ]
        },
        {
            "name": "dbt-postgres",
            "specs": [
                [
                    "==",
                    "1.7.4"
                ]
            ]
        },
        {
            "name": "dbt-redshift",
            "specs": [
                [
                    "==",
                    "1.7.1"
                ]
            ]
        },
        {
            "name": "dbt-snowflake",
            "specs": [
                [
                    "==",
                    "1.7.1"
                ]
            ]
        },
        {
            "name": "dbt-spark",
            "specs": [
                [
                    "==",
                    "1.7.1"
                ]
            ]
        },
        {
            "name": "dbt-sqlserver",
            "specs": [
                [
                    "==",
                    "1.7.4"
                ]
            ]
        },
        {
            "name": "dbt-trino",
            "specs": [
                [
                    "==",
                    "1.7.1"
                ]
            ]
        },
        {
            "name": "async-timeout",
            "specs": [
                [
                    "==",
                    "4.0.3"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "22.2.0"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "24.2.0"
                ]
            ]
        },
        {
            "name": "backoff",
            "specs": []
        },
        {
            "name": "clickhouse_sqlalchemy",
            "specs": []
        },
        {
            "name": "deltalake",
            "specs": [
                [
                    "==",
                    "0.20.2"
                ]
            ]
        },
        {
            "name": "facebook_business",
            "specs": [
                [
                    "==",
                    "17.0.2"
                ]
            ]
        },
        {
            "name": "gnupg",
            "specs": [
                [
                    "==",
                    "2.3.1"
                ]
            ]
        },
        {
            "name": "google-analytics-data",
            "specs": [
                [
                    "==",
                    "0.14.2"
                ]
            ]
        },
        {
            "name": "google-analytics-data",
            "specs": [
                [
                    "==",
                    "0.15.0"
                ]
            ]
        },
        {
            "name": "google-cloud-bigquery-storage",
            "specs": [
                [
                    "==",
                    "2.16.2"
                ]
            ]
        },
        {
            "name": "google-cloud-bigquery-storage",
            "specs": [
                [
                    "==",
                    "2.26.0"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": []
        },
        {
            "name": "pendulum",
            "specs": [
                [
                    "==",
                    "2.1.0"
                ]
            ]
        },
        {
            "name": "pendulum",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "pymongo_schema",
            "specs": [
                [
                    "==",
                    "0.4.1"
                ]
            ]
        },
        {
            "name": "python-magic",
            "specs": [
                [
                    "==",
                    "0.4.27"
                ]
            ]
        },
        {
            "name": "redshift-connector",
            "specs": [
                [
                    "~=",
                    "2.0.915"
                ]
            ]
        },
        {
            "name": "requests_mock",
            "specs": [
                [
                    "==",
                    "1.10.0"
                ]
            ]
        },
        {
            "name": "simple_salesforce",
            "specs": [
                [
                    "~=",
                    "1.12.5"
                ]
            ]
        },
        {
            "name": "singer_sdk",
            "specs": [
                [
                    "~=",
                    "0.34.1"
                ]
            ]
        },
        {
            "name": "stripe",
            "specs": [
                [
                    "==",
                    "5.5.0"
                ]
            ]
        },
        {
            "name": "terminaltables",
            "specs": [
                [
                    "==",
                    "3.1.10"
                ]
            ]
        },
        {
            "name": "twitter-ads",
            "specs": [
                [
                    "==",
                    "11.0.0"
                ]
            ]
        },
        {
            "name": "tzlocal",
            "specs": [
                [
                    "==",
                    "4.2"
                ]
            ]
        },
        {
            "name": "xlsx2csv",
            "specs": [
                [
                    "==",
                    "0.8.1"
                ]
            ]
        },
        {
            "name": "xmltodict",
            "specs": [
                [
                    "==",
                    "0.13.0"
                ]
            ]
        },
        {
            "name": "zenpy",
            "specs": [
                [
                    "==",
                    "2.0.25"
                ]
            ]
        }
    ],
    "lcname": "mage-ai"
}
        
Elapsed time: 1.48923s