Metadata-Version: 2.1
Name: revefi-ingestion
Version: 0.1.0b1
Summary: Revefi metadata ingestion CLI, built on OpenMetadata's ingestion framework
Author: Revefi
License: Collate Community License Agreement
                                        Version 1.0
        
        This Collate Community License Agreement Version 1.0 (the “Agreement”) sets
        forth the terms on which Collate, Inc. (“Collate”) makes available certain
        software made available by Collate under this Agreement (the “Software”).  BY
        INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY OF THE SOFTWARE,
        YOU AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO
        SUCH TERMS AND CONDITIONS, YOU MUST NOT USE THE SOFTWARE.  IF YOU ARE RECEIVING
        THE SOFTWARE ON BEHALF OF A LEGAL ENTITY, YOU REPRESENT AND WARRANT THAT YOU
        HAVE THE ACTUAL AUTHORITY TO AGREE TO THE TERMS AND CONDITIONS OF THIS
        AGREEMENT ON BEHALF OF SUCH ENTITY.  “Licensee” means you, an individual, or
        the entity on whose behalf you are receiving the Software.
        
           1. LICENSE GRANT AND CONDITIONS.
        
              1.1 License.  Subject to the terms and conditions of this Agreement,
              Collate hereby grants to Licensee a non-exclusive, royalty-free,
              worldwide, non-transferable, non-sublicenseable license during the term
              of this Agreement to: (a) use the Software; (b) prepare modifications and
              derivative works of the Software; (c) distribute the Software (including
              without limitation in source code or object code form); and (d) reproduce
              copies of the Software (the “License”).  Licensee is not granted the
              right to, and Licensee shall not, exercise the License for an Excluded
              Purpose.  For purposes of this Agreement, “Excluded Purpose” means making
              available any software-as-a-service, platform-as-a-service,
              infrastructure-as-a-service or other similar online service that competes
              with Collate products or services that provide the Software.
        
              1.2 Conditions.  In consideration of the License, Licensee’s distribution
              of the Software is subject to the following conditions:
        
                 (a) Licensee must cause any Software modified by Licensee to carry
                 prominent notices stating that Licensee modified the Software.
        
                 (b) On each Software copy, Licensee shall reproduce and not remove or
                 alter all Collate or third party copyright or other proprietary
                 notices contained in the Software, and Licensee must provide the
                 notice below with each copy.
        
                    “This software is made available by Collate, Inc., under the
                    terms of the Collate Community License Agreement, Version 1.0
                    located at http://www.getcollate.io/collate-community-license.  BY
                    INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY OF
                    THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.”
        
              1.3 Licensee Modifications.  Licensee may add its own copyright notices
              to modifications made by Licensee and may provide additional or different
              license terms and conditions for use, reproduction, or distribution of
              Licensee’s modifications.  While redistributing the Software or
              modifications thereof, Licensee may choose to offer, for a fee or free of
              charge, support, warranty, indemnity, or other obligations. Licensee, and
              not Collate, will be responsible for any such obligations.
        
              1.4 No Sublicensing.  The License does not include the right to
              sublicense the Software, however, each recipient to which Licensee
              provides the Software may exercise the Licenses so long as such recipient
              agrees to the terms and conditions of this Agreement.
        
           2. TERM AND TERMINATION.  This Agreement will continue unless and until
           earlier terminated as set forth herein.  If Licensee breaches any of its
           conditions or obligations under this Agreement, this Agreement will
           terminate automatically and the License will terminate automatically and
           permanently.
        
           3. INTELLECTUAL PROPERTY.  As between the parties, Collate will retain all
           right, title, and interest in the Software, and all intellectual property
           rights therein.  Collate hereby reserves all rights not expressly granted
           to Licensee in this Agreement.  Collate hereby reserves all rights in its
           trademarks and service marks, and no licenses therein are granted in this
           Agreement.
        
           4. DISCLAIMER.  COLLATE HEREBY DISCLAIMS ANY AND ALL WARRANTIES AND
           CONDITIONS, EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, AND SPECIFICALLY
           DISCLAIMS ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
           PURPOSE, WITH RESPECT TO THE SOFTWARE.
        
           5. LIMITATION OF LIABILITY.  COLLATE WILL NOT BE LIABLE FOR ANY DAMAGES OF
           ANY KIND, INCLUDING BUT NOT LIMITED TO, LOST PROFITS OR ANY CONSEQUENTIAL,
           SPECIAL, INCIDENTAL, INDIRECT, OR DIRECT DAMAGES, HOWEVER CAUSED AND ON ANY
           THEORY OF LIABILITY, ARISING OUT OF THIS AGREEMENT.  THE FOREGOING SHALL
           APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW.
        
           6.GENERAL.
        
              6.1 Governing Law. This Agreement will be governed by and interpreted in
              accordance with the laws of the state of California, without reference to
              its conflict of laws principles.  If Licensee is located within the
              United States, all disputes arising out of this Agreement are subject to
              the exclusive jurisdiction of courts located in Santa Clara County,
              California. USA.  If Licensee is located outside of the United States,
              any dispute, controversy or claim arising out of or relating to this
              Agreement will be referred to and finally determined by arbitration in
              accordance with the JAMS International Arbitration Rules.  The tribunal
              will consist of one arbitrator.  The place of arbitration will be Palo
              Alto, California. The language to be used in the arbitral proceedings
              will be English.  Judgment upon the award rendered by the arbitrator may
              be entered in any court having jurisdiction thereof.
        
              6.2 Assignment.  Licensee is not authorized to assign its rights under
              this Agreement to any third party. Collate may freely assign its rights
              under this Agreement to any third party.
        
              6.3 Other.  This Agreement is the entire agreement between the parties
              regarding the subject matter hereof.  No amendment or modification of
              this Agreement will be valid or binding upon the parties unless made in
              writing and signed by the duly authorized representatives of both
              parties.  In the event that any provision, including without limitation
              any condition, of this Agreement is held to be unenforceable, this
              Agreement and all licenses and rights granted hereunder will immediately
              terminate.  Waiver by Collate of a breach of any provision of this
              Agreement or the failure by Collate to exercise any right hereunder
              will not be construed as a waiver of any subsequent breach of that right
              or as a waiver of any other right.
Project-URL: Homepage, https://www.revefi.com/
Project-URL: Source, https://github.com/revefi/OpenMetadata
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cached-property ==1.5.2
Requires-Dist: mypy-extensions >=0.4.3
Requires-Dist: python-dateutil >=2.8.1
Requires-Dist: importlib-metadata >=4.13.0
Requires-Dist: collate-sqllineage >=2.1.3
Requires-Dist: requests >=2.23
Requires-Dist: pymysql ~=1.0
Requires-Dist: sqlalchemy <3,>=2.0.0
Requires-Dist: pydantic <2.12,>=2.7.0,~=2.0
Requires-Dist: azure-keyvault-secrets
Requires-Dist: idna >=3.15
Requires-Dist: PyYAML ~=6.0
Requires-Dist: memory-profiler
Requires-Dist: email-validator >=2.0
Requires-Dist: azure-identity ~=1.12
Requires-Dist: tabulate ==0.9.0
Requires-Dist: jaraco.context >=6.1.0
Requires-Dist: dbt-extractor >=0.5.0
Requires-Dist: python-dotenv >=0.19.0
Requires-Dist: cryptography >=46.0.5
Requires-Dist: jaraco.functools <4.2.0
Requires-Dist: cachetools
Requires-Dist: typing-inspect
Requires-Dist: boto3 ~=1.41.5
Requires-Dist: antlr4-python3-runtime ==4.9.2
Requires-Dist: google-crc32c
Requires-Dist: requests-aws4auth ~=1.1
Requires-Dist: PyJWT >=2.12.0
Requires-Dist: setuptools >=78.1.1
Requires-Dist: httpx ~=0.28.0
Requires-Dist: kubernetes <36,>=21.0.0
Requires-Dist: google-cloud-secret-manager ==2.24.0
Requires-Dist: pydantic-settings >=2.7.0,~=2.0
Requires-Dist: lxml >=6.1.0
Requires-Dist: packaging
Requires-Dist: shapely
Requires-Dist: tenacity <10,>=8.0
Requires-Dist: Jinja2 >=2.11.3
Requires-Dist: jsonpatch <2.0,>=1.24
Requires-Dist: Mako >=1.3.12
Requires-Dist: mistune >=3.2.1
Requires-Dist: collate-data-diff >=0.11.11
Requires-Dist: chardet ==4.0.0
Provides-Extra: airflow
Requires-Dist: apache-airflow ==3.2.1 ; extra == 'airflow'
Requires-Dist: starlette >=0.49.1 ; extra == 'airflow'
Requires-Dist: apache-airflow-providers-opensearch >=1.9.1 ; extra == 'airflow'
Requires-Dist: tornado >=6.5.5 ; extra == 'airflow'
Requires-Dist: Werkzeug >=3.0.6 ; extra == 'airflow'
Requires-Dist: apache-airflow-providers-elasticsearch >=6.5.3 ; extra == 'airflow'
Requires-Dist: apache-airflow-providers-http >=6.0.0 ; extra == 'airflow'
Requires-Dist: python-multipart >=0.0.27 ; extra == 'airflow'
Requires-Dist: opentelemetry-exporter-otlp ==1.37.0 ; extra == 'airflow'
Requires-Dist: attrs ; extra == 'airflow'
Provides-Extra: all
Requires-Dist: pure-transport ==0.2.0 ; extra == 'all'
Requires-Dist: cached-property ==1.5.2 ; extra == 'all'
Requires-Dist: py7zr ~=1.1.0 ; extra == 'all'
Requires-Dist: databricks-sqlalchemy ~=2.0.9 ; extra == 'all'
Requires-Dist: python-dateutil >=2.8.1 ; extra == 'all'
Requires-Dist: collate-data-diff[clickhouse] ; extra == 'all'
Requires-Dist: pyasn1 >=0.6.3 ; extra == 'all'
Requires-Dist: importlib-metadata >=4.13.0 ; extra == 'all'
Requires-Dist: clickhouse-sqlalchemy >=0.3 ; extra == 'all'
Requires-Dist: sqlalchemy <3,>=2.0.0 ; extra == 'all'
Requires-Dist: pydantic <2.12,>=2.7.0,~=2.0 ; extra == 'all'
Requires-Dist: presto-types-parser >=0.0.2 ; extra == 'all'
Requires-Dist: azure-keyvault-secrets ; extra == 'all'
Requires-Dist: idna >=3.15 ; extra == 'all'
Requires-Dist: thrift <1,>=0.13 ; extra == 'all'
Requires-Dist: azure-storage-blob ; extra == 'all'
Requires-Dist: gitpython ~=3.1.34 ; extra == 'all'
Requires-Dist: email-validator >=2.0 ; extra == 'all'
Requires-Dist: pinotdb ~=5.0 ; extra == 'all'
Requires-Dist: google-cloud-bigtable >=2.0.0 ; extra == 'all'
Requires-Dist: gcsfs ~=2026.3 ; extra == 'all'
Requires-Dist: collate-data-diff[trino] ; extra == 'all'
Requires-Dist: antlr4-python3-runtime ==4.9.2 ; extra == 'all'
Requires-Dist: google-crc32c ; extra == 'all'
Requires-Dist: kubernetes <36,>=21.0.0 ; extra == 'all'
Requires-Dist: google-cloud-secret-manager ==2.24.0 ; extra == 'all'
Requires-Dist: pydantic-settings >=2.7.0,~=2.0 ; extra == 'all'
Requires-Dist: lxml >=6.1.0 ; extra == 'all'
Requires-Dist: packaging ; extra == 'all'
Requires-Dist: presidio-analyzer ==2.2.358 ; extra == 'all'
Requires-Dist: shapely ; extra == 'all'
Requires-Dist: deltalake <0.20,>=0.19.0 ; extra == 'all'
Requires-Dist: jsonpatch <2.0,>=1.24 ; extra == 'all'
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'all'
Requires-Dist: scikit-learn <2,>=1.3 ; extra == 'all'
Requires-Dist: great-expectations ~=1.0 ; extra == 'all'
Requires-Dist: collate-data-diff >=0.11.11 ; extra == 'all'
Requires-Dist: snowflake-sqlalchemy >=1.8.0 ; extra == 'all'
Requires-Dist: collate-data-diff[snowflake] ; extra == 'all'
Requires-Dist: databricks-sql-connector >=4.0.0 ; extra == 'all'
Requires-Dist: mypy-extensions >=0.4.3 ; extra == 'all'
Requires-Dist: google-api-python-client >=2.0.0 ; extra == 'all'
Requires-Dist: lkml ~=1.3 ; extra == 'all'
Requires-Dist: teradatasqlalchemy ==20.0.0.2 ; extra == 'all'
Requires-Dist: delta-spark <4.0.0,>=3.0.0 ; extra == 'all'
Requires-Dist: spacy <3.8 ; extra == 'all'
Requires-Dist: cx-Oracle <9,>=8.3.0 ; extra == 'all'
Requires-Dist: trino[sqlalchemy] ; extra == 'all'
Requires-Dist: impyla[kerberos] ~=0.18.0 ; extra == 'all'
Requires-Dist: requests >=2.23 ; extra == 'all'
Requires-Dist: sqlalchemy-hana ; extra == 'all'
Requires-Dist: google-cloud ; extra == 'all'
Requires-Dist: adbc-driver-flightsql ; extra == 'all'
Requires-Dist: google-cloud-logging ; extra == 'all'
Requires-Dist: pyodbc ~=5.3.0 ; extra == 'all'
Requires-Dist: sqlalchemy-redshift ~=1.0.0 ; extra == 'all'
Requires-Dist: tableauserverclient ==0.40 ; extra == 'all'
Requires-Dist: pydruid >=0.6.5 ; extra == 'all'
Requires-Dist: memory-profiler ; extra == 'all'
Requires-Dist: ndg-httpsclient ~=0.5.1 ; extra == 'all'
Requires-Dist: ijson ~=3.4 ; extra == 'all'
Requires-Dist: pure-sasl ; extra == 'all'
Requires-Dist: azure-identity ~=1.12 ; extra == 'all'
Requires-Dist: pyOpenSSL >=26.0.0 ; extra == 'all'
Requires-Dist: jaraco.functools <4.2.0 ; extra == 'all'
Requires-Dist: typing-inspect ; extra == 'all'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'all'
Requires-Dist: requests-aws4auth ~=1.1 ; extra == 'all'
Requires-Dist: setuptools >=78.1.1 ; extra == 'all'
Requires-Dist: httpx ~=0.28.0 ; extra == 'all'
Requires-Dist: msal ~=1.2 ; extra == 'all'
Requires-Dist: fastavro >=1.2.0 ; extra == 'all'
Requires-Dist: google-cloud-datacatalog >=3.6.2 ; extra == 'all'
Requires-Dist: opensearch-py ~=2.4.0 ; extra == 'all'
Requires-Dist: Jinja2 >=2.11.3 ; extra == 'all'
Requires-Dist: sqlalchemy-pgspider ; extra == 'all'
Requires-Dist: pymssql ~=2.3.9 ; extra == 'all'
Requires-Dist: exasol-integration-test-docker-environment <4,>=3.1.0 ; extra == 'all'
Requires-Dist: cramjam ~=2.7 ; extra == 'all'
Requires-Dist: thrift-sasl ~=0.4 ; extra == 'all'
Requires-Dist: collate-data-diff[vertica] ; extra == 'all'
Requires-Dist: pandas ~=2.1.4 ; extra == 'all'
Requires-Dist: python-liquid ; extra == 'all'
Requires-Dist: google-cloud-storage >=1.43.0 ; extra == 'all'
Requires-Dist: pyathena ~=3.25.0 ; extra == 'all'
Requires-Dist: validators ~=0.22.0 ; extra == 'all'
Requires-Dist: looker-sdk !=24.18.0,>=22.20.0 ; extra == 'all'
Requires-Dist: GeoAlchemy2 ~=0.12 ; extra == 'all'
Requires-Dist: numpy <2 ; extra == 'all'
Requires-Dist: clickhouse-driver ~=0.2 ; extra == 'all'
Requires-Dist: sqlalchemy-exasol <7,>=6 ; extra == 'all'
Requires-Dist: sqlalchemy-pytds ~=0.3 ; extra == 'all'
Requires-Dist: neo4j ~=5.3 ; extra == 'all'
Requires-Dist: azure-storage-blob ~=12.14 ; extra == 'all'
Requires-Dist: collate-data-diff[oracle] ; extra == 'all'
Requires-Dist: pyhive[hive_pure_sasl] ~=0.7 ; extra == 'all'
Requires-Dist: collate-data-diff[presto] ; extra == 'all'
Requires-Dist: confluent-kafka <=2.6.1,>=2.1.1 ; extra == 'all'
Requires-Dist: python-dotenv >=0.19.0 ; extra == 'all'
Requires-Dist: elasticsearch8 ~=8.9.0 ; extra == 'all'
Requires-Dist: cachetools ; extra == 'all'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'all'
Requires-Dist: cassandra-driver >=3.28.0 ; extra == 'all'
Requires-Dist: PyJWT >=2.12.0 ; extra == 'all'
Requires-Dist: iomete-sqlalchemy >=1.0.22 ; extra == 'all'
Requires-Dist: websocket-client ~=1.6.1 ; extra == 'all'
Requires-Dist: hdbcli ; extra == 'all'
Requires-Dist: sqlalchemy-bigquery >=1.15.0 ; extra == 'all'
Requires-Dist: cloud-sql-python-connector[pymysql] <2.0.0,>=1.0.0 ; extra == 'all'
Requires-Dist: adlfs >=2023.1.0 ; extra == 'all'
Requires-Dist: s3fs ~=2026.3 ; extra == 'all'
Requires-Dist: chardet ==4.0.0 ; extra == 'all'
Requires-Dist: giturlparse ; extra == 'all'
Requires-Dist: psycopg2-binary ; extra == 'all'
Requires-Dist: pydomo ~=0.3 ; extra == 'all'
Requires-Dist: requests-ntlm ; extra == 'all'
Requires-Dist: pyspark ==3.5.6 ; extra == 'all'
Requires-Dist: collate-data-diff[mysql] ; extra == 'all'
Requires-Dist: collate-sqllineage >=2.1.3 ; extra == 'all'
Requires-Dist: impyla ~=0.18.0 ; extra == 'all'
Requires-Dist: pymysql ~=1.0 ; extra == 'all'
Requires-Dist: croniter <3 ; extra == 'all'
Requires-Dist: kafka-connect-py ==0.10.11 ; extra == 'all'
Requires-Dist: collate-data-diff[mssql] ; extra == 'all'
Requires-Dist: google-cloud-pubsub >=2.0.0 ; extra == 'all'
Requires-Dist: pymongo ~=4.3 ; extra == 'all'
Requires-Dist: pyarrow ~=16.0 ; extra == 'all'
Requires-Dist: PyYAML ~=6.0 ; extra == 'all'
Requires-Dist: rarfile ~=4.2 ; extra == 'all'
Requires-Dist: sqlalchemy-vertica[vertica-python] >=0.0.5 ; extra == 'all'
Requires-Dist: dagster-graphql >=1.8.0 ; extra == 'all'
Requires-Dist: aiobotocore ~=2.26.0 ; extra == 'all'
Requires-Dist: tabulate ==0.9.0 ; extra == 'all'
Requires-Dist: jaraco.context >=6.1.0 ; extra == 'all'
Requires-Dist: dbt-extractor >=0.5.0 ; extra == 'all'
Requires-Dist: cryptography >=46.0.5 ; extra == 'all'
Requires-Dist: protobuf >=5.29.6 ; extra == 'all'
Requires-Dist: authlib >=1.6.9 ; extra == 'all'
Requires-Dist: simple-salesforce ~=1.11 ; extra == 'all'
Requires-Dist: oracledb ~=1.2 ; extra == 'all'
Requires-Dist: collate-dbt-artifacts-parser ; extra == 'all'
Requires-Dist: mlflow-skinny <3.13,>=3.11.1 ; extra == 'all'
Requires-Dist: couchbase ~=4.1 ; extra == 'all'
Requires-Dist: tenacity <10,>=8.0 ; extra == 'all'
Requires-Dist: asammdf ~=7.4.5 ; extra == 'all'
Requires-Dist: Mako >=1.3.12 ; extra == 'all'
Requires-Dist: sqlalchemy-cockroachdb ~=2.0 ; extra == 'all'
Requires-Dist: mistune >=3.2.1 ; extra == 'all'
Requires-Dist: google-cloud-monitoring >=2.0.0 ; extra == 'all'
Requires-Dist: adbc-driver-manager ; extra == 'all'
Requires-Dist: databricks-sdk ~=0.20.0 ; extra == 'all'
Provides-Extra: all-dev-env
Requires-Dist: pure-transport ==0.2.0 ; extra == 'all-dev-env'
Requires-Dist: cached-property ==1.5.2 ; extra == 'all-dev-env'
Requires-Dist: py7zr ~=1.1.0 ; extra == 'all-dev-env'
Requires-Dist: databricks-sqlalchemy ~=2.0.9 ; extra == 'all-dev-env'
Requires-Dist: python-dateutil >=2.8.1 ; extra == 'all-dev-env'
Requires-Dist: collate-data-diff[clickhouse] ; extra == 'all-dev-env'
Requires-Dist: pyasn1 >=0.6.3 ; extra == 'all-dev-env'
Requires-Dist: importlib-metadata >=4.13.0 ; extra == 'all-dev-env'
Requires-Dist: clickhouse-sqlalchemy >=0.3 ; extra == 'all-dev-env'
Requires-Dist: sqlalchemy <3,>=2.0.0 ; extra == 'all-dev-env'
Requires-Dist: pydantic <2.12,>=2.7.0,~=2.0 ; extra == 'all-dev-env'
Requires-Dist: presto-types-parser >=0.0.2 ; extra == 'all-dev-env'
Requires-Dist: azure-keyvault-secrets ; extra == 'all-dev-env'
Requires-Dist: idna >=3.15 ; extra == 'all-dev-env'
Requires-Dist: thrift <1,>=0.13 ; extra == 'all-dev-env'
Requires-Dist: azure-storage-blob ; extra == 'all-dev-env'
Requires-Dist: gitpython ~=3.1.34 ; extra == 'all-dev-env'
Requires-Dist: email-validator >=2.0 ; extra == 'all-dev-env'
Requires-Dist: pinotdb ~=5.0 ; extra == 'all-dev-env'
Requires-Dist: google-cloud-bigtable >=2.0.0 ; extra == 'all-dev-env'
Requires-Dist: gcsfs ~=2026.3 ; extra == 'all-dev-env'
Requires-Dist: collate-data-diff[trino] ; extra == 'all-dev-env'
Requires-Dist: antlr4-python3-runtime ==4.9.2 ; extra == 'all-dev-env'
Requires-Dist: google-crc32c ; extra == 'all-dev-env'
Requires-Dist: kubernetes <36,>=21.0.0 ; extra == 'all-dev-env'
Requires-Dist: google-cloud-secret-manager ==2.24.0 ; extra == 'all-dev-env'
Requires-Dist: pydantic-settings >=2.7.0,~=2.0 ; extra == 'all-dev-env'
Requires-Dist: lxml >=6.1.0 ; extra == 'all-dev-env'
Requires-Dist: packaging ; extra == 'all-dev-env'
Requires-Dist: presidio-analyzer ==2.2.358 ; extra == 'all-dev-env'
Requires-Dist: shapely ; extra == 'all-dev-env'
Requires-Dist: deltalake <0.20,>=0.19.0 ; extra == 'all-dev-env'
Requires-Dist: jsonpatch <2.0,>=1.24 ; extra == 'all-dev-env'
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'all-dev-env'
Requires-Dist: scikit-learn <2,>=1.3 ; extra == 'all-dev-env'
Requires-Dist: great-expectations ~=1.0 ; extra == 'all-dev-env'
Requires-Dist: collate-data-diff >=0.11.11 ; extra == 'all-dev-env'
Requires-Dist: snowflake-sqlalchemy >=1.8.0 ; extra == 'all-dev-env'
Requires-Dist: collate-data-diff[snowflake] ; extra == 'all-dev-env'
Requires-Dist: databricks-sql-connector >=4.0.0 ; extra == 'all-dev-env'
Requires-Dist: mypy-extensions >=0.4.3 ; extra == 'all-dev-env'
Requires-Dist: google-api-python-client >=2.0.0 ; extra == 'all-dev-env'
Requires-Dist: lkml ~=1.3 ; extra == 'all-dev-env'
Requires-Dist: teradatasqlalchemy ==20.0.0.2 ; extra == 'all-dev-env'
Requires-Dist: delta-spark <4.0.0,>=3.0.0 ; extra == 'all-dev-env'
Requires-Dist: spacy <3.8 ; extra == 'all-dev-env'
Requires-Dist: cx-Oracle <9,>=8.3.0 ; extra == 'all-dev-env'
Requires-Dist: trino[sqlalchemy] ; extra == 'all-dev-env'
Requires-Dist: impyla[kerberos] ~=0.18.0 ; extra == 'all-dev-env'
Requires-Dist: requests >=2.23 ; extra == 'all-dev-env'
Requires-Dist: sqlalchemy-hana ; extra == 'all-dev-env'
Requires-Dist: google-cloud ; extra == 'all-dev-env'
Requires-Dist: adbc-driver-flightsql ; extra == 'all-dev-env'
Requires-Dist: google-cloud-logging ; extra == 'all-dev-env'
Requires-Dist: pyodbc ~=5.3.0 ; extra == 'all-dev-env'
Requires-Dist: sqlalchemy-redshift ~=1.0.0 ; extra == 'all-dev-env'
Requires-Dist: tableauserverclient ==0.40 ; extra == 'all-dev-env'
Requires-Dist: pydruid >=0.6.5 ; extra == 'all-dev-env'
Requires-Dist: memory-profiler ; extra == 'all-dev-env'
Requires-Dist: ndg-httpsclient ~=0.5.1 ; extra == 'all-dev-env'
Requires-Dist: ijson ~=3.4 ; extra == 'all-dev-env'
Requires-Dist: pure-sasl ; extra == 'all-dev-env'
Requires-Dist: azure-identity ~=1.12 ; extra == 'all-dev-env'
Requires-Dist: pyOpenSSL >=26.0.0 ; extra == 'all-dev-env'
Requires-Dist: jaraco.functools <4.2.0 ; extra == 'all-dev-env'
Requires-Dist: typing-inspect ; extra == 'all-dev-env'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'all-dev-env'
Requires-Dist: requests-aws4auth ~=1.1 ; extra == 'all-dev-env'
Requires-Dist: setuptools >=78.1.1 ; extra == 'all-dev-env'
Requires-Dist: httpx ~=0.28.0 ; extra == 'all-dev-env'
Requires-Dist: msal ~=1.2 ; extra == 'all-dev-env'
Requires-Dist: fastavro >=1.2.0 ; extra == 'all-dev-env'
Requires-Dist: google-cloud-datacatalog >=3.6.2 ; extra == 'all-dev-env'
Requires-Dist: opensearch-py ~=2.4.0 ; extra == 'all-dev-env'
Requires-Dist: Jinja2 >=2.11.3 ; extra == 'all-dev-env'
Requires-Dist: sqlalchemy-pgspider ; extra == 'all-dev-env'
Requires-Dist: exasol-integration-test-docker-environment <4,>=3.1.0 ; extra == 'all-dev-env'
Requires-Dist: cramjam ~=2.7 ; extra == 'all-dev-env'
Requires-Dist: thrift-sasl ~=0.4 ; extra == 'all-dev-env'
Requires-Dist: collate-data-diff[vertica] ; extra == 'all-dev-env'
Requires-Dist: pandas ~=2.1.4 ; extra == 'all-dev-env'
Requires-Dist: python-liquid ; extra == 'all-dev-env'
Requires-Dist: google-cloud-storage >=1.43.0 ; extra == 'all-dev-env'
Requires-Dist: pyathena ~=3.25.0 ; extra == 'all-dev-env'
Requires-Dist: validators ~=0.22.0 ; extra == 'all-dev-env'
Requires-Dist: looker-sdk !=24.18.0,>=22.20.0 ; extra == 'all-dev-env'
Requires-Dist: GeoAlchemy2 ~=0.12 ; extra == 'all-dev-env'
Requires-Dist: numpy <2 ; extra == 'all-dev-env'
Requires-Dist: clickhouse-driver ~=0.2 ; extra == 'all-dev-env'
Requires-Dist: sqlalchemy-exasol <7,>=6 ; extra == 'all-dev-env'
Requires-Dist: sqlalchemy-pytds ~=0.3 ; extra == 'all-dev-env'
Requires-Dist: neo4j ~=5.3 ; extra == 'all-dev-env'
Requires-Dist: azure-storage-blob ~=12.14 ; extra == 'all-dev-env'
Requires-Dist: collate-data-diff[oracle] ; extra == 'all-dev-env'
Requires-Dist: pyhive[hive_pure_sasl] ~=0.7 ; extra == 'all-dev-env'
Requires-Dist: collate-data-diff[presto] ; extra == 'all-dev-env'
Requires-Dist: confluent-kafka <=2.6.1,>=2.1.1 ; extra == 'all-dev-env'
Requires-Dist: python-dotenv >=0.19.0 ; extra == 'all-dev-env'
Requires-Dist: elasticsearch8 ~=8.9.0 ; extra == 'all-dev-env'
Requires-Dist: cachetools ; extra == 'all-dev-env'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'all-dev-env'
Requires-Dist: cassandra-driver >=3.28.0 ; extra == 'all-dev-env'
Requires-Dist: PyJWT >=2.12.0 ; extra == 'all-dev-env'
Requires-Dist: iomete-sqlalchemy >=1.0.22 ; extra == 'all-dev-env'
Requires-Dist: websocket-client ~=1.6.1 ; extra == 'all-dev-env'
Requires-Dist: hdbcli ; extra == 'all-dev-env'
Requires-Dist: sqlalchemy-bigquery >=1.15.0 ; extra == 'all-dev-env'
Requires-Dist: cloud-sql-python-connector[pymysql] <2.0.0,>=1.0.0 ; extra == 'all-dev-env'
Requires-Dist: adlfs >=2023.1.0 ; extra == 'all-dev-env'
Requires-Dist: s3fs ~=2026.3 ; extra == 'all-dev-env'
Requires-Dist: chardet ==4.0.0 ; extra == 'all-dev-env'
Requires-Dist: giturlparse ; extra == 'all-dev-env'
Requires-Dist: psycopg2-binary ; extra == 'all-dev-env'
Requires-Dist: pydomo ~=0.3 ; extra == 'all-dev-env'
Requires-Dist: requests-ntlm ; extra == 'all-dev-env'
Requires-Dist: pyspark ==3.5.6 ; extra == 'all-dev-env'
Requires-Dist: collate-data-diff[mysql] ; extra == 'all-dev-env'
Requires-Dist: collate-sqllineage >=2.1.3 ; extra == 'all-dev-env'
Requires-Dist: impyla ~=0.18.0 ; extra == 'all-dev-env'
Requires-Dist: pymysql ~=1.0 ; extra == 'all-dev-env'
Requires-Dist: croniter <3 ; extra == 'all-dev-env'
Requires-Dist: kafka-connect-py ==0.10.11 ; extra == 'all-dev-env'
Requires-Dist: collate-data-diff[mssql] ; extra == 'all-dev-env'
Requires-Dist: google-cloud-pubsub >=2.0.0 ; extra == 'all-dev-env'
Requires-Dist: pymongo ~=4.3 ; extra == 'all-dev-env'
Requires-Dist: pyarrow ~=16.0 ; extra == 'all-dev-env'
Requires-Dist: PyYAML ~=6.0 ; extra == 'all-dev-env'
Requires-Dist: rarfile ~=4.2 ; extra == 'all-dev-env'
Requires-Dist: sqlalchemy-vertica[vertica-python] >=0.0.5 ; extra == 'all-dev-env'
Requires-Dist: dagster-graphql >=1.8.0 ; extra == 'all-dev-env'
Requires-Dist: aiobotocore ~=2.26.0 ; extra == 'all-dev-env'
Requires-Dist: tabulate ==0.9.0 ; extra == 'all-dev-env'
Requires-Dist: jaraco.context >=6.1.0 ; extra == 'all-dev-env'
Requires-Dist: dbt-extractor >=0.5.0 ; extra == 'all-dev-env'
Requires-Dist: cryptography >=46.0.5 ; extra == 'all-dev-env'
Requires-Dist: protobuf >=5.29.6 ; extra == 'all-dev-env'
Requires-Dist: authlib >=1.6.9 ; extra == 'all-dev-env'
Requires-Dist: simple-salesforce ~=1.11 ; extra == 'all-dev-env'
Requires-Dist: oracledb ~=1.2 ; extra == 'all-dev-env'
Requires-Dist: collate-dbt-artifacts-parser ; extra == 'all-dev-env'
Requires-Dist: mlflow-skinny <3.13,>=3.11.1 ; extra == 'all-dev-env'
Requires-Dist: couchbase ~=4.1 ; extra == 'all-dev-env'
Requires-Dist: tenacity <10,>=8.0 ; extra == 'all-dev-env'
Requires-Dist: asammdf ~=7.4.5 ; extra == 'all-dev-env'
Requires-Dist: Mako >=1.3.12 ; extra == 'all-dev-env'
Requires-Dist: sqlalchemy-cockroachdb ~=2.0 ; extra == 'all-dev-env'
Requires-Dist: mistune >=3.2.1 ; extra == 'all-dev-env'
Requires-Dist: google-cloud-monitoring >=2.0.0 ; extra == 'all-dev-env'
Requires-Dist: adbc-driver-manager ; extra == 'all-dev-env'
Requires-Dist: databricks-sdk ~=0.20.0 ; extra == 'all-dev-env'
Provides-Extra: amundsen
Requires-Dist: neo4j ~=5.3 ; extra == 'amundsen'
Provides-Extra: athena
Requires-Dist: pyathena ~=3.25.0 ; extra == 'athena'
Provides-Extra: atlas
Provides-Extra: azure-sso
Requires-Dist: msal ~=1.2 ; extra == 'azure-sso'
Provides-Extra: azuresql
Requires-Dist: pyodbc ~=5.3.0 ; extra == 'azuresql'
Provides-Extra: backup
Requires-Dist: boto3 ~=1.41.5 ; extra == 'backup'
Requires-Dist: azure-storage-blob ; extra == 'backup'
Requires-Dist: azure-identity ~=1.12 ; extra == 'backup'
Provides-Extra: bigquery
Requires-Dist: sqlalchemy-bigquery >=1.15.0 ; extra == 'bigquery'
Requires-Dist: google-cloud-logging ; extra == 'bigquery'
Requires-Dist: google-cloud-datacatalog >=3.6.2 ; extra == 'bigquery'
Requires-Dist: pyarrow ~=16.0 ; extra == 'bigquery'
Requires-Dist: numpy <2 ; extra == 'bigquery'
Provides-Extra: bigtable
Requires-Dist: google-cloud-bigtable >=2.0.0 ; extra == 'bigtable'
Requires-Dist: pandas ~=2.1.4 ; extra == 'bigtable'
Requires-Dist: numpy <2 ; extra == 'bigtable'
Provides-Extra: cassandra
Requires-Dist: cassandra-driver >=3.28.0 ; extra == 'cassandra'
Provides-Extra: clickhouse
Requires-Dist: clickhouse-sqlalchemy >=0.3 ; extra == 'clickhouse'
Requires-Dist: collate-data-diff[clickhouse] ; extra == 'clickhouse'
Requires-Dist: clickhouse-driver ~=0.2 ; extra == 'clickhouse'
Provides-Extra: cockroach
Requires-Dist: psycopg2-binary ; extra == 'cockroach'
Requires-Dist: sqlalchemy-cockroachdb ~=2.0 ; extra == 'cockroach'
Provides-Extra: couchbase
Requires-Dist: couchbase ~=4.1 ; extra == 'couchbase'
Provides-Extra: dagster
Requires-Dist: psycopg2-binary ; extra == 'dagster'
Requires-Dist: croniter <3 ; extra == 'dagster'
Requires-Dist: GeoAlchemy2 ~=0.12 ; extra == 'dagster'
Requires-Dist: dagster-graphql >=1.8.0 ; extra == 'dagster'
Requires-Dist: pymysql ~=1.0 ; extra == 'dagster'
Provides-Extra: data-insight
Requires-Dist: elasticsearch8 ~=8.9.0 ; extra == 'data-insight'
Provides-Extra: databricks
Requires-Dist: databricks-sql-connector >=4.0.0 ; extra == 'databricks'
Requires-Dist: databricks-sqlalchemy ~=2.0.9 ; extra == 'databricks'
Requires-Dist: pyasn1 >=0.6.3 ; extra == 'databricks'
Requires-Dist: databricks-sdk ~=0.20.0 ; extra == 'databricks'
Requires-Dist: ndg-httpsclient ~=0.5.1 ; extra == 'databricks'
Requires-Dist: pyOpenSSL >=26.0.0 ; extra == 'databricks'
Provides-Extra: datalake-azure
Requires-Dist: azure-storage-blob ~=12.14 ; extra == 'datalake-azure'
Requires-Dist: pandas ~=2.1.4 ; extra == 'datalake-azure'
Requires-Dist: fastavro >=1.2.0 ; extra == 'datalake-azure'
Requires-Dist: pyarrow ~=16.0 ; extra == 'datalake-azure'
Requires-Dist: cramjam ~=2.7 ; extra == 'datalake-azure'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'datalake-azure'
Requires-Dist: asammdf ~=7.4.5 ; extra == 'datalake-azure'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'datalake-azure'
Requires-Dist: adlfs >=2023.1.0 ; extra == 'datalake-azure'
Requires-Dist: aiobotocore ~=2.26.0 ; extra == 'datalake-azure'
Requires-Dist: ijson ~=3.4 ; extra == 'datalake-azure'
Requires-Dist: numpy <2 ; extra == 'datalake-azure'
Requires-Dist: azure-identity ~=1.12 ; extra == 'datalake-azure'
Provides-Extra: datalake-gcs
Requires-Dist: google-cloud-storage >=1.43.0 ; extra == 'datalake-gcs'
Requires-Dist: fastavro >=1.2.0 ; extra == 'datalake-gcs'
Requires-Dist: pyarrow ~=16.0 ; extra == 'datalake-gcs'
Requires-Dist: gcsfs ~=2026.3 ; extra == 'datalake-gcs'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'datalake-gcs'
Requires-Dist: asammdf ~=7.4.5 ; extra == 'datalake-gcs'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'datalake-gcs'
Requires-Dist: google-cloud-monitoring >=2.0.0 ; extra == 'datalake-gcs'
Requires-Dist: cramjam ~=2.7 ; extra == 'datalake-gcs'
Requires-Dist: aiobotocore ~=2.26.0 ; extra == 'datalake-gcs'
Requires-Dist: ijson ~=3.4 ; extra == 'datalake-gcs'
Requires-Dist: numpy <2 ; extra == 'datalake-gcs'
Requires-Dist: pandas ~=2.1.4 ; extra == 'datalake-gcs'
Provides-Extra: datalake-s3
Requires-Dist: fastavro >=1.2.0 ; extra == 'datalake-s3'
Requires-Dist: pyarrow ~=16.0 ; extra == 'datalake-s3'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'datalake-s3'
Requires-Dist: asammdf ~=7.4.5 ; extra == 'datalake-s3'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'datalake-s3'
Requires-Dist: cramjam ~=2.7 ; extra == 'datalake-s3'
Requires-Dist: aiobotocore ~=2.26.0 ; extra == 'datalake-s3'
Requires-Dist: s3fs ~=2026.3 ; extra == 'datalake-s3'
Requires-Dist: ijson ~=3.4 ; extra == 'datalake-s3'
Requires-Dist: numpy <2 ; extra == 'datalake-s3'
Requires-Dist: pandas ~=2.1.4 ; extra == 'datalake-s3'
Provides-Extra: db2
Requires-Dist: ibm-db >=3.2.6 ; extra == 'db2'
Requires-Dist: ibm-db-sa ~=0.4.1 ; extra == 'db2'
Provides-Extra: db2-ibmi
Provides-Extra: dbt
Requires-Dist: azure-storage-blob ~=12.14 ; extra == 'dbt'
Requires-Dist: google-cloud-storage >=1.43.0 ; extra == 'dbt'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'dbt'
Requires-Dist: collate-dbt-artifacts-parser ; extra == 'dbt'
Requires-Dist: google-cloud ; extra == 'dbt'
Requires-Dist: azure-identity ~=1.12 ; extra == 'dbt'
Provides-Extra: deltalake
Requires-Dist: delta-spark <4.0.0,>=3.0.0 ; extra == 'deltalake'
Requires-Dist: deltalake <0.20,>=0.19.0 ; extra == 'deltalake'
Requires-Dist: pyspark ==3.5.6 ; extra == 'deltalake'
Provides-Extra: deltalake-spark
Requires-Dist: delta-spark <4.0.0,>=3.0.0 ; extra == 'deltalake-spark'
Requires-Dist: pyspark ==3.5.6 ; extra == 'deltalake-spark'
Provides-Extra: deltalake-storage
Requires-Dist: deltalake <0.20,>=0.19.0 ; extra == 'deltalake-storage'
Provides-Extra: dev
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: pylint ~=3.2.0 ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Requires-Dist: datamodel-code-generator ==0.25.6 ; extra == 'dev'
Requires-Dist: sqlalchemy-bigquery >=1.15.0 ; extra == 'dev'
Requires-Dist: presidio-analyzer ==2.2.358 ; extra == 'dev'
Requires-Dist: pycln ; extra == 'dev'
Requires-Dist: spacy <3.8 ; extra == 'dev'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'dev'
Requires-Dist: basedpyright ~=1.14 ; extra == 'dev'
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'dev'
Requires-Dist: black ==22.3.0 ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: build ; extra == 'dev'
Requires-Dist: boto3-stubs ; extra == 'dev'
Requires-Dist: uvloop ==0.21.0 ; extra == 'dev'
Requires-Dist: mypy-boto3-glue ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: griffe2md ~=1.2 ; extra == 'docs'
Provides-Extra: domo
Requires-Dist: pydomo ~=0.3 ; extra == 'domo'
Provides-Extra: doris
Provides-Extra: druid
Requires-Dist: pydruid >=0.6.5 ; extra == 'druid'
Provides-Extra: dynamodb
Requires-Dist: boto3 ~=1.41.5 ; extra == 'dynamodb'
Provides-Extra: e2e_test
Requires-Dist: pytest-playwright ; extra == 'e2e_test'
Requires-Dist: pytest-base-url ; extra == 'e2e_test'
Provides-Extra: elasticsearch
Requires-Dist: elasticsearch8 ~=8.9.0 ; extra == 'elasticsearch'
Provides-Extra: exasol
Requires-Dist: sqlalchemy-exasol <7,>=6 ; extra == 'exasol'
Requires-Dist: exasol-integration-test-docker-environment <4,>=3.1.0 ; extra == 'exasol'
Provides-Extra: gcs
Requires-Dist: rarfile ~=4.2 ; extra == 'gcs'
Requires-Dist: py7zr ~=1.1.0 ; extra == 'gcs'
Requires-Dist: google-cloud-storage >=1.43.0 ; extra == 'gcs'
Requires-Dist: pyarrow ~=16.0 ; extra == 'gcs'
Requires-Dist: pandas ~=2.1.4 ; extra == 'gcs'
Provides-Extra: glue
Requires-Dist: boto3 ~=1.41.5 ; extra == 'glue'
Provides-Extra: googledrive
Requires-Dist: google-api-python-client >=2.0.0 ; extra == 'googledrive'
Provides-Extra: great-expectations
Requires-Dist: great-expectations ~=0.18.0 ; extra == 'great-expectations'
Provides-Extra: great-expectations-1xx
Requires-Dist: great-expectations ~=1.0 ; extra == 'great-expectations-1xx'
Provides-Extra: greenplum
Requires-Dist: psycopg2-binary ; extra == 'greenplum'
Requires-Dist: packaging ; extra == 'greenplum'
Requires-Dist: pymysql ~=1.0 ; extra == 'greenplum'
Requires-Dist: GeoAlchemy2 ~=0.12 ; extra == 'greenplum'
Provides-Extra: hive
Requires-Dist: pure-transport ==0.2.0 ; extra == 'hive'
Requires-Dist: pyhive[hive_pure_sasl] ~=0.7 ; extra == 'hive'
Requires-Dist: presto-types-parser >=0.0.2 ; extra == 'hive'
Requires-Dist: thrift <1,>=0.13 ; extra == 'hive'
Requires-Dist: impyla ~=0.18.0 ; extra == 'hive'
Requires-Dist: pure-sasl ; extra == 'hive'
Requires-Dist: thrift-sasl ~=0.4 ; extra == 'hive'
Provides-Extra: impala
Requires-Dist: thrift <1,>=0.13 ; extra == 'impala'
Requires-Dist: impyla[kerberos] ~=0.18.0 ; extra == 'impala'
Requires-Dist: pure-sasl ; extra == 'impala'
Requires-Dist: thrift-sasl ~=0.4 ; extra == 'impala'
Requires-Dist: presto-types-parser >=0.0.2 ; extra == 'impala'
Provides-Extra: iomete
Requires-Dist: adbc-driver-flightsql ; extra == 'iomete'
Requires-Dist: adbc-driver-manager ; extra == 'iomete'
Requires-Dist: iomete-sqlalchemy >=1.0.22 ; extra == 'iomete'
Provides-Extra: kafka
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'kafka'
Requires-Dist: fastavro >=1.2.0 ; extra == 'kafka'
Requires-Dist: protobuf >=5.29.6 ; extra == 'kafka'
Requires-Dist: confluent-kafka <=2.6.1,>=2.1.1 ; extra == 'kafka'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'kafka'
Provides-Extra: kafkaconnect
Requires-Dist: kafka-connect-py ==0.10.11 ; extra == 'kafkaconnect'
Provides-Extra: kinesis
Requires-Dist: boto3 ~=1.41.5 ; extra == 'kinesis'
Provides-Extra: looker
Requires-Dist: giturlparse ; extra == 'looker'
Requires-Dist: python-liquid ; extra == 'looker'
Requires-Dist: lkml ~=1.3 ; extra == 'looker'
Requires-Dist: looker-sdk !=24.18.0,>=22.20.0 ; extra == 'looker'
Requires-Dist: gitpython ~=3.1.34 ; extra == 'looker'
Provides-Extra: mlflow
Requires-Dist: mlflow-skinny <3.13,>=3.11.1 ; extra == 'mlflow'
Provides-Extra: mongo
Requires-Dist: pymongo ~=4.3 ; extra == 'mongo'
Requires-Dist: pandas ~=2.1.4 ; extra == 'mongo'
Requires-Dist: numpy <2 ; extra == 'mongo'
Provides-Extra: mssql
Requires-Dist: sqlalchemy-pytds ~=0.3 ; extra == 'mssql'
Requires-Dist: collate-data-diff[mssql] ; extra == 'mssql'
Provides-Extra: mssql-odbc
Requires-Dist: pyodbc ~=5.3.0 ; extra == 'mssql-odbc'
Requires-Dist: collate-data-diff[mssql] ; extra == 'mssql-odbc'
Provides-Extra: mysql
Requires-Dist: cloud-sql-python-connector[pymysql] <2.0.0,>=1.0.0 ; extra == 'mysql'
Requires-Dist: collate-data-diff[mysql] ; extra == 'mysql'
Requires-Dist: pymysql ~=1.0 ; extra == 'mysql'
Provides-Extra: nifi
Provides-Extra: openlineage
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'openlineage'
Requires-Dist: fastavro >=1.2.0 ; extra == 'openlineage'
Requires-Dist: protobuf >=5.29.6 ; extra == 'openlineage'
Requires-Dist: confluent-kafka <=2.6.1,>=2.1.1 ; extra == 'openlineage'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'openlineage'
Provides-Extra: opensearch
Requires-Dist: opensearch-py ~=2.4.0 ; extra == 'opensearch'
Provides-Extra: oracle
Requires-Dist: cx-Oracle <9,>=8.3.0 ; extra == 'oracle'
Requires-Dist: oracledb ~=1.2 ; extra == 'oracle'
Requires-Dist: collate-data-diff[oracle] ; extra == 'oracle'
Provides-Extra: pandas
Requires-Dist: pandas ~=2.1.4 ; extra == 'pandas'
Requires-Dist: numpy <2 ; extra == 'pandas'
Provides-Extra: pgspider
Requires-Dist: psycopg2-binary ; extra == 'pgspider'
Requires-Dist: sqlalchemy-pgspider ; extra == 'pgspider'
Provides-Extra: pii-processor
Requires-Dist: presidio-analyzer ==2.2.358 ; extra == 'pii-processor'
Requires-Dist: spacy <3.8 ; extra == 'pii-processor'
Requires-Dist: pandas ~=2.1.4 ; extra == 'pii-processor'
Requires-Dist: numpy <2 ; extra == 'pii-processor'
Provides-Extra: pinotdb
Requires-Dist: pinotdb ~=5.0 ; extra == 'pinotdb'
Provides-Extra: playwright
Requires-Dist: apache-airflow ==3.2.1 ; extra == 'playwright'
Requires-Dist: psycopg2-binary ; extra == 'playwright'
Requires-Dist: apache-airflow-providers-opensearch >=1.9.1 ; extra == 'playwright'
Requires-Dist: google-cloud-storage >=1.43.0 ; extra == 'playwright'
Requires-Dist: tornado >=6.5.5 ; extra == 'playwright'
Requires-Dist: Werkzeug >=3.0.6 ; extra == 'playwright'
Requires-Dist: apache-airflow-providers-elasticsearch >=6.5.3 ; extra == 'playwright'
Requires-Dist: collate-data-diff[mysql] ; extra == 'playwright'
Requires-Dist: GeoAlchemy2 ~=0.12 ; extra == 'playwright'
Requires-Dist: numpy <2 ; extra == 'playwright'
Requires-Dist: apache-airflow-providers-http >=6.0.0 ; extra == 'playwright'
Requires-Dist: google-cloud ; extra == 'playwright'
Requires-Dist: pymysql ~=1.0 ; extra == 'playwright'
Requires-Dist: pandas ~=2.1.4 ; extra == 'playwright'
Requires-Dist: google-cloud-logging ; extra == 'playwright'
Requires-Dist: azure-storage-blob ~=12.14 ; extra == 'playwright'
Requires-Dist: sqlalchemy-redshift ~=1.0.0 ; extra == 'playwright'
Requires-Dist: pyarrow ~=16.0 ; extra == 'playwright'
Requires-Dist: pytest-playwright ; extra == 'playwright'
Requires-Dist: aiobotocore ~=2.26.0 ; extra == 'playwright'
Requires-Dist: ijson ~=3.4 ; extra == 'playwright'
Requires-Dist: opentelemetry-exporter-otlp ==1.37.0 ; extra == 'playwright'
Requires-Dist: confluent-kafka <=2.6.1,>=2.1.1 ; extra == 'playwright'
Requires-Dist: azure-identity ~=1.12 ; extra == 'playwright'
Requires-Dist: starlette >=0.49.1 ; extra == 'playwright'
Requires-Dist: protobuf >=5.29.6 ; extra == 'playwright'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'playwright'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'playwright'
Requires-Dist: collate-dbt-artifacts-parser ; extra == 'playwright'
Requires-Dist: mlflow-skinny <3.13,>=3.11.1 ; extra == 'playwright'
Requires-Dist: attrs ; extra == 'playwright'
Requires-Dist: pytest-base-url ; extra == 'playwright'
Requires-Dist: sqlalchemy-bigquery >=1.15.0 ; extra == 'playwright'
Requires-Dist: packaging ; extra == 'playwright'
Requires-Dist: presidio-analyzer ==2.2.358 ; extra == 'playwright'
Requires-Dist: fastavro >=1.2.0 ; extra == 'playwright'
Requires-Dist: google-cloud-datacatalog >=3.6.2 ; extra == 'playwright'
Requires-Dist: cloud-sql-python-connector[pymysql] <2.0.0,>=1.0.0 ; extra == 'playwright'
Requires-Dist: asammdf ~=7.4.5 ; extra == 'playwright'
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'playwright'
Requires-Dist: cramjam ~=2.7 ; extra == 'playwright'
Requires-Dist: s3fs ~=2026.3 ; extra == 'playwright'
Requires-Dist: python-multipart >=0.0.27 ; extra == 'playwright'
Requires-Dist: snowflake-sqlalchemy >=1.8.0 ; extra == 'playwright'
Requires-Dist: collate-data-diff[snowflake] ; extra == 'playwright'
Provides-Extra: postgres
Requires-Dist: psycopg2-binary ; extra == 'postgres'
Requires-Dist: packaging ; extra == 'postgres'
Requires-Dist: pymysql ~=1.0 ; extra == 'postgres'
Requires-Dist: GeoAlchemy2 ~=0.12 ; extra == 'postgres'
Provides-Extra: powerbi
Requires-Dist: azure-storage-blob ~=12.14 ; extra == 'powerbi'
Requires-Dist: msal ~=1.2 ; extra == 'powerbi'
Requires-Dist: google-cloud-storage >=1.43.0 ; extra == 'powerbi'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'powerbi'
Requires-Dist: azure-identity ~=1.12 ; extra == 'powerbi'
Provides-Extra: presidio-analyzer
Requires-Dist: presidio-analyzer ==2.2.358 ; extra == 'presidio-analyzer'
Provides-Extra: presto
Requires-Dist: pure-transport ==0.2.0 ; extra == 'presto'
Requires-Dist: collate-data-diff[presto] ; extra == 'presto'
Requires-Dist: pyhive[hive_pure_sasl] ~=0.7 ; extra == 'presto'
Requires-Dist: presto-types-parser >=0.0.2 ; extra == 'presto'
Provides-Extra: pubsub
Requires-Dist: google-cloud-pubsub >=2.0.0 ; extra == 'pubsub'
Provides-Extra: pyarrow
Requires-Dist: pyarrow ~=16.0 ; extra == 'pyarrow'
Provides-Extra: pymssql
Requires-Dist: pymssql ~=2.3.9 ; extra == 'pymssql'
Provides-Extra: qliksense
Requires-Dist: websocket-client ~=1.6.1 ; extra == 'qliksense'
Provides-Extra: questdb
Requires-Dist: psycopg2-binary ; extra == 'questdb'
Provides-Extra: quicksight
Requires-Dist: boto3 ~=1.41.5 ; extra == 'quicksight'
Provides-Extra: redash
Requires-Dist: packaging ; extra == 'redash'
Provides-Extra: redpanda
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'redpanda'
Requires-Dist: fastavro >=1.2.0 ; extra == 'redpanda'
Requires-Dist: protobuf >=5.29.6 ; extra == 'redpanda'
Requires-Dist: confluent-kafka <=2.6.1,>=2.1.1 ; extra == 'redpanda'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'redpanda'
Provides-Extra: redshift
Requires-Dist: sqlalchemy-redshift ~=1.0.0 ; extra == 'redshift'
Requires-Dist: GeoAlchemy2 ~=0.12 ; extra == 'redshift'
Requires-Dist: psycopg2-binary ; extra == 'redshift'
Provides-Extra: s3
Requires-Dist: rarfile ~=4.2 ; extra == 's3'
Requires-Dist: pyarrow ~=16.0 ; extra == 's3'
Requires-Dist: py7zr ~=1.1.0 ; extra == 's3'
Requires-Dist: pandas ~=2.1.4 ; extra == 's3'
Provides-Extra: sagemaker
Requires-Dist: boto3 ~=1.41.5 ; extra == 'sagemaker'
Provides-Extra: salesforce
Requires-Dist: authlib >=1.6.9 ; extra == 'salesforce'
Requires-Dist: simple-salesforce ~=1.11 ; extra == 'salesforce'
Provides-Extra: sample-data
Requires-Dist: sqlalchemy-bigquery >=1.15.0 ; extra == 'sample-data'
Requires-Dist: presidio-analyzer ==2.2.358 ; extra == 'sample-data'
Requires-Dist: spacy <3.8 ; extra == 'sample-data'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'sample-data'
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'sample-data'
Provides-Extra: sap-hana
Requires-Dist: sqlalchemy-hana ; extra == 'sap-hana'
Requires-Dist: hdbcli ; extra == 'sap-hana'
Provides-Extra: sas
Provides-Extra: singlestore
Requires-Dist: pymysql ~=1.0 ; extra == 'singlestore'
Provides-Extra: sklearn
Requires-Dist: scikit-learn <2,>=1.3 ; extra == 'sklearn'
Provides-Extra: slim
Requires-Dist: pure-transport ==0.2.0 ; extra == 'slim'
Requires-Dist: cached-property ==1.5.2 ; extra == 'slim'
Requires-Dist: python-liquid ; extra == 'slim'
Requires-Dist: py7zr ~=1.1.0 ; extra == 'slim'
Requires-Dist: databricks-sqlalchemy ~=2.0.9 ; extra == 'slim'
Requires-Dist: google-cloud-storage >=1.43.0 ; extra == 'slim'
Requires-Dist: python-dateutil >=2.8.1 ; extra == 'slim'
Requires-Dist: pyathena ~=3.25.0 ; extra == 'slim'
Requires-Dist: collate-data-diff[clickhouse] ; extra == 'slim'
Requires-Dist: importlib-metadata >=4.13.0 ; extra == 'slim'
Requires-Dist: pyasn1 >=0.6.3 ; extra == 'slim'
Requires-Dist: validators ~=0.22.0 ; extra == 'slim'
Requires-Dist: looker-sdk !=24.18.0,>=22.20.0 ; extra == 'slim'
Requires-Dist: GeoAlchemy2 ~=0.12 ; extra == 'slim'
Requires-Dist: numpy <2 ; extra == 'slim'
Requires-Dist: clickhouse-sqlalchemy >=0.3 ; extra == 'slim'
Requires-Dist: clickhouse-driver ~=0.2 ; extra == 'slim'
Requires-Dist: sqlalchemy-exasol <7,>=6 ; extra == 'slim'
Requires-Dist: collate-data-diff[vertica] ; extra == 'slim'
Requires-Dist: sqlalchemy-pytds ~=0.3 ; extra == 'slim'
Requires-Dist: neo4j ~=5.3 ; extra == 'slim'
Requires-Dist: sqlalchemy <3,>=2.0.0 ; extra == 'slim'
Requires-Dist: azure-storage-blob ~=12.14 ; extra == 'slim'
Requires-Dist: collate-data-diff[oracle] ; extra == 'slim'
Requires-Dist: exasol-integration-test-docker-environment <4,>=3.1.0 ; extra == 'slim'
Requires-Dist: pydantic <2.12,>=2.7.0,~=2.0 ; extra == 'slim'
Requires-Dist: pyhive[hive_pure_sasl] ~=0.7 ; extra == 'slim'
Requires-Dist: presto-types-parser >=0.0.2 ; extra == 'slim'
Requires-Dist: azure-keyvault-secrets ; extra == 'slim'
Requires-Dist: idna >=3.15 ; extra == 'slim'
Requires-Dist: thrift <1,>=0.13 ; extra == 'slim'
Requires-Dist: azure-storage-blob ; extra == 'slim'
Requires-Dist: collate-data-diff[presto] ; extra == 'slim'
Requires-Dist: gitpython ~=3.1.34 ; extra == 'slim'
Requires-Dist: email-validator >=2.0 ; extra == 'slim'
Requires-Dist: confluent-kafka <=2.6.1,>=2.1.1 ; extra == 'slim'
Requires-Dist: pinotdb ~=5.0 ; extra == 'slim'
Requires-Dist: google-cloud-bigtable >=2.0.0 ; extra == 'slim'
Requires-Dist: python-dotenv >=0.19.0 ; extra == 'slim'
Requires-Dist: elasticsearch8 ~=8.9.0 ; extra == 'slim'
Requires-Dist: cachetools ; extra == 'slim'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'slim'
Requires-Dist: gcsfs ~=2026.3 ; extra == 'slim'
Requires-Dist: collate-data-diff[trino] ; extra == 'slim'
Requires-Dist: cassandra-driver >=3.28.0 ; extra == 'slim'
Requires-Dist: antlr4-python3-runtime ==4.9.2 ; extra == 'slim'
Requires-Dist: google-crc32c ; extra == 'slim'
Requires-Dist: PyJWT >=2.12.0 ; extra == 'slim'
Requires-Dist: iomete-sqlalchemy >=1.0.22 ; extra == 'slim'
Requires-Dist: kubernetes <36,>=21.0.0 ; extra == 'slim'
Requires-Dist: google-cloud-secret-manager ==2.24.0 ; extra == 'slim'
Requires-Dist: pydantic-settings >=2.7.0,~=2.0 ; extra == 'slim'
Requires-Dist: websocket-client ~=1.6.1 ; extra == 'slim'
Requires-Dist: lxml >=6.1.0 ; extra == 'slim'
Requires-Dist: sqlalchemy-bigquery >=1.15.0 ; extra == 'slim'
Requires-Dist: packaging ; extra == 'slim'
Requires-Dist: hdbcli ; extra == 'slim'
Requires-Dist: presidio-analyzer ==2.2.358 ; extra == 'slim'
Requires-Dist: shapely ; extra == 'slim'
Requires-Dist: deltalake <0.20,>=0.19.0 ; extra == 'slim'
Requires-Dist: cloud-sql-python-connector[pymysql] <2.0.0,>=1.0.0 ; extra == 'slim'
Requires-Dist: jsonpatch <2.0,>=1.24 ; extra == 'slim'
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'slim'
Requires-Dist: adlfs >=2023.1.0 ; extra == 'slim'
Requires-Dist: great-expectations ~=1.0 ; extra == 'slim'
Requires-Dist: collate-data-diff >=0.11.11 ; extra == 'slim'
Requires-Dist: s3fs ~=2026.3 ; extra == 'slim'
Requires-Dist: chardet ==4.0.0 ; extra == 'slim'
Requires-Dist: snowflake-sqlalchemy >=1.8.0 ; extra == 'slim'
Requires-Dist: collate-data-diff[snowflake] ; extra == 'slim'
Requires-Dist: giturlparse ; extra == 'slim'
Requires-Dist: psycopg2-binary ; extra == 'slim'
Requires-Dist: databricks-sql-connector >=4.0.0 ; extra == 'slim'
Requires-Dist: mypy-extensions >=0.4.3 ; extra == 'slim'
Requires-Dist: google-api-python-client >=2.0.0 ; extra == 'slim'
Requires-Dist: lkml ~=1.3 ; extra == 'slim'
Requires-Dist: teradatasqlalchemy ==20.0.0.2 ; extra == 'slim'
Requires-Dist: pydomo ~=0.3 ; extra == 'slim'
Requires-Dist: spacy <3.8 ; extra == 'slim'
Requires-Dist: requests-ntlm ; extra == 'slim'
Requires-Dist: collate-data-diff[mysql] ; extra == 'slim'
Requires-Dist: cx-Oracle <9,>=8.3.0 ; extra == 'slim'
Requires-Dist: trino[sqlalchemy] ; extra == 'slim'
Requires-Dist: collate-sqllineage >=2.1.3 ; extra == 'slim'
Requires-Dist: impyla[kerberos] ~=0.18.0 ; extra == 'slim'
Requires-Dist: impyla ~=0.18.0 ; extra == 'slim'
Requires-Dist: requests >=2.23 ; extra == 'slim'
Requires-Dist: sqlalchemy-hana ; extra == 'slim'
Requires-Dist: google-cloud ; extra == 'slim'
Requires-Dist: pymysql ~=1.0 ; extra == 'slim'
Requires-Dist: croniter <3 ; extra == 'slim'
Requires-Dist: adbc-driver-flightsql ; extra == 'slim'
Requires-Dist: kafka-connect-py ==0.10.11 ; extra == 'slim'
Requires-Dist: collate-data-diff[mssql] ; extra == 'slim'
Requires-Dist: google-cloud-logging ; extra == 'slim'
Requires-Dist: google-cloud-pubsub >=2.0.0 ; extra == 'slim'
Requires-Dist: pyodbc ~=5.3.0 ; extra == 'slim'
Requires-Dist: pymongo ~=4.3 ; extra == 'slim'
Requires-Dist: pyarrow ~=16.0 ; extra == 'slim'
Requires-Dist: sqlalchemy-redshift ~=1.0.0 ; extra == 'slim'
Requires-Dist: PyYAML ~=6.0 ; extra == 'slim'
Requires-Dist: rarfile ~=4.2 ; extra == 'slim'
Requires-Dist: tableauserverclient ==0.40 ; extra == 'slim'
Requires-Dist: sqlalchemy-vertica[vertica-python] >=0.0.5 ; extra == 'slim'
Requires-Dist: dagster-graphql >=1.8.0 ; extra == 'slim'
Requires-Dist: aiobotocore ~=2.26.0 ; extra == 'slim'
Requires-Dist: pydruid >=0.6.5 ; extra == 'slim'
Requires-Dist: memory-profiler ; extra == 'slim'
Requires-Dist: ndg-httpsclient ~=0.5.1 ; extra == 'slim'
Requires-Dist: ijson ~=3.4 ; extra == 'slim'
Requires-Dist: tabulate ==0.9.0 ; extra == 'slim'
Requires-Dist: azure-identity ~=1.12 ; extra == 'slim'
Requires-Dist: jaraco.context >=6.1.0 ; extra == 'slim'
Requires-Dist: pyOpenSSL >=26.0.0 ; extra == 'slim'
Requires-Dist: dbt-extractor >=0.5.0 ; extra == 'slim'
Requires-Dist: pure-sasl ; extra == 'slim'
Requires-Dist: cryptography >=46.0.5 ; extra == 'slim'
Requires-Dist: protobuf >=5.29.6 ; extra == 'slim'
Requires-Dist: authlib >=1.6.9 ; extra == 'slim'
Requires-Dist: jaraco.functools <4.2.0 ; extra == 'slim'
Requires-Dist: simple-salesforce ~=1.11 ; extra == 'slim'
Requires-Dist: oracledb ~=1.2 ; extra == 'slim'
Requires-Dist: typing-inspect ; extra == 'slim'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'slim'
Requires-Dist: collate-dbt-artifacts-parser ; extra == 'slim'
Requires-Dist: requests-aws4auth ~=1.1 ; extra == 'slim'
Requires-Dist: setuptools >=78.1.1 ; extra == 'slim'
Requires-Dist: httpx ~=0.28.0 ; extra == 'slim'
Requires-Dist: mlflow-skinny <3.13,>=3.11.1 ; extra == 'slim'
Requires-Dist: msal ~=1.2 ; extra == 'slim'
Requires-Dist: couchbase ~=4.1 ; extra == 'slim'
Requires-Dist: fastavro >=1.2.0 ; extra == 'slim'
Requires-Dist: tenacity <10,>=8.0 ; extra == 'slim'
Requires-Dist: google-cloud-datacatalog >=3.6.2 ; extra == 'slim'
Requires-Dist: opensearch-py ~=2.4.0 ; extra == 'slim'
Requires-Dist: asammdf ~=7.4.5 ; extra == 'slim'
Requires-Dist: Jinja2 >=2.11.3 ; extra == 'slim'
Requires-Dist: Mako >=1.3.12 ; extra == 'slim'
Requires-Dist: sqlalchemy-cockroachdb ~=2.0 ; extra == 'slim'
Requires-Dist: mistune >=3.2.1 ; extra == 'slim'
Requires-Dist: cramjam ~=2.7 ; extra == 'slim'
Requires-Dist: google-cloud-monitoring >=2.0.0 ; extra == 'slim'
Requires-Dist: adbc-driver-manager ; extra == 'slim'
Requires-Dist: databricks-sdk ~=0.20.0 ; extra == 'slim'
Requires-Dist: thrift-sasl ~=0.4 ; extra == 'slim'
Requires-Dist: sqlalchemy-pgspider ; extra == 'slim'
Requires-Dist: pymssql ~=2.3.9 ; extra == 'slim'
Requires-Dist: pandas ~=2.1.4 ; extra == 'slim'
Provides-Extra: snowflake
Requires-Dist: snowflake-sqlalchemy >=1.8.0 ; extra == 'snowflake'
Requires-Dist: collate-data-diff[snowflake] ; extra == 'snowflake'
Provides-Extra: ssrs
Requires-Dist: requests-ntlm ; extra == 'ssrs'
Provides-Extra: starrocks
Requires-Dist: pymysql ~=1.0 ; extra == 'starrocks'
Provides-Extra: superset
Provides-Extra: tableau
Requires-Dist: tableauserverclient ==0.40 ; extra == 'tableau'
Requires-Dist: packaging ; extra == 'tableau'
Requires-Dist: validators ~=0.22.0 ; extra == 'tableau'
Provides-Extra: teradata
Requires-Dist: teradatasqlalchemy ==20.0.0.2 ; extra == 'teradata'
Provides-Extra: test
Requires-Dist: apache-airflow ==3.2.1 ; extra == 'test'
Requires-Dist: python-liquid ; extra == 'test'
Requires-Dist: google-cloud-storage >=1.43.0 ; extra == 'test'
Requires-Dist: collate-data-diff[clickhouse] ; extra == 'test'
Requires-Dist: pyathena ~=3.25.0 ; extra == 'test'
Requires-Dist: validators ~=0.22.0 ; extra == 'test'
Requires-Dist: pytest ==7.0.1 ; extra == 'test'
Requires-Dist: looker-sdk !=24.18.0,>=22.20.0 ; extra == 'test'
Requires-Dist: GeoAlchemy2 ~=0.12 ; extra == 'test'
Requires-Dist: numpy <2 ; extra == 'test'
Requires-Dist: clickhouse-sqlalchemy >=0.3 ; extra == 'test'
Requires-Dist: clickhouse-driver ~=0.2 ; extra == 'test'
Requires-Dist: sqlalchemy-exasol <7,>=6 ; extra == 'test'
Requires-Dist: sqlalchemy-pytds ~=0.3 ; extra == 'test'
Requires-Dist: neo4j ~=5.3 ; extra == 'test'
Requires-Dist: requests <3,>=2.31.0 ; extra == 'test'
Requires-Dist: collate-data-diff[oracle] ; extra == 'test'
Requires-Dist: exasol-integration-test-docker-environment <4,>=3.1.0 ; extra == 'test'
Requires-Dist: pyhive[hive_pure_sasl] ~=0.7 ; extra == 'test'
Requires-Dist: dirty-equals ; extra == 'test'
Requires-Dist: confluent-kafka <=2.6.1,>=2.1.1 ; extra == 'test'
Requires-Dist: google-cloud-bigtable >=2.0.0 ; extra == 'test'
Requires-Dist: elasticsearch8 ~=8.9.0 ; extra == 'test'
Requires-Dist: gcsfs ~=2026.3 ; extra == 'test'
Requires-Dist: avro <1.12,>=1.11.4 ; extra == 'test'
Requires-Dist: pytest-order ; extra == 'test'
Requires-Dist: cassandra-driver >=3.28.0 ; extra == 'test'
Requires-Dist: boto3-stubs ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: sqlalchemy-bigquery >=1.15.0 ; extra == 'test'
Requires-Dist: presidio-analyzer ==2.2.358 ; extra == 'test'
Requires-Dist: minio ==7.2.5 ; extra == 'test'
Requires-Dist: deltalake <0.20,>=0.19.0 ; extra == 'test'
Requires-Dist: great-expectations ~=0.18.0 ; extra == 'test'
Requires-Dist: scikit-learn <2,>=1.3 ; extra == 'test'
Requires-Dist: grpcio-tools >=1.47.2 ; extra == 'test'
Requires-Dist: s3fs ~=2026.3 ; extra == 'test'
Requires-Dist: mypy-boto3-glue ; extra == 'test'
Requires-Dist: snowflake-sqlalchemy >=1.8.0 ; extra == 'test'
Requires-Dist: giturlparse ; extra == 'test'
Requires-Dist: databricks-sql-connector >=4.0.0 ; extra == 'test'
Requires-Dist: psycopg2-binary ; extra == 'test'
Requires-Dist: teradatasqlalchemy ==20.0.0.2 ; extra == 'test'
Requires-Dist: lkml ~=1.3 ; extra == 'test'
Requires-Dist: delta-spark <4.0.0,>=3.0.0 ; extra == 'test'
Requires-Dist: spacy <3.8 ; extra == 'test'
Requires-Dist: pydomo ~=0.3 ; extra == 'test'
Requires-Dist: pyspark ==3.5.6 ; extra == 'test'
Requires-Dist: collate-data-diff[mysql] ; extra == 'test'
Requires-Dist: trino[sqlalchemy] ; extra == 'test'
Requires-Dist: cx-Oracle <9,>=8.3.0 ; extra == 'test'
Requires-Dist: factory-boy ~=3.3.3 ; extra == 'test'
Requires-Dist: coverage ; extra == 'test'
Requires-Dist: pymysql ~=1.0 ; extra == 'test'
Requires-Dist: croniter <3 ; extra == 'test'
Requires-Dist: collate-data-diff[mssql] ; extra == 'test'
Requires-Dist: kafka-connect-py ==0.10.11 ; extra == 'test'
Requires-Dist: google-cloud-logging ; extra == 'test'
Requires-Dist: faker ==37.1.0 ; extra == 'test'
Requires-Dist: pymongo ~=4.3 ; extra == 'test'
Requires-Dist: pyarrow ~=16.0 ; extra == 'test'
Requires-Dist: kafka-python ==2.0.2 ; extra == 'test'
Requires-Dist: tableauserverclient ==0.40 ; extra == 'test'
Requires-Dist: dagster-graphql >=1.8.0 ; extra == 'test'
Requires-Dist: aiobotocore ~=2.26.0 ; extra == 'test'
Requires-Dist: ijson ~=3.4 ; extra == 'test'
Requires-Dist: opentelemetry-exporter-otlp ==1.37.0 ; extra == 'test'
Requires-Dist: locust ~=2.32.0 ; extra == 'test'
Requires-Dist: protobuf >=5.29.6 ; extra == 'test'
Requires-Dist: oracledb ~=1.2 ; extra == 'test'
Requires-Dist: freezegun ; extra == 'test'
Requires-Dist: collate-dbt-artifacts-parser ; extra == 'test'
Requires-Dist: boto3 ~=1.41.5 ; extra == 'test'
Requires-Dist: mlflow-skinny <3.13,>=3.11.1 ; extra == 'test'
Requires-Dist: fastavro >=1.2.0 ; extra == 'test'
Requires-Dist: google-cloud-datacatalog >=3.6.2 ; extra == 'test'
Requires-Dist: opensearch-py ~=2.4.0 ; extra == 'test'
Requires-Dist: pytest-xdist ~=3.5 ; extra == 'test'
Requires-Dist: asammdf ~=7.4.5 ; extra == 'test'
Requires-Dist: sqlalchemy-pgspider ; extra == 'test'
Requires-Dist: sqlalchemy-cockroachdb ~=2.0 ; extra == 'test'
Requires-Dist: google-cloud-monitoring >=2.0.0 ; extra == 'test'
Requires-Dist: cramjam ~=2.7 ; extra == 'test'
Requires-Dist: databricks-sdk ~=0.20.0 ; extra == 'test'
Requires-Dist: pandas ~=2.1.4 ; extra == 'test'
Provides-Extra: test-unit
Requires-Dist: pytest-cov ; extra == 'test-unit'
Requires-Dist: faker ==37.1.0 ; extra == 'test-unit'
Requires-Dist: teradatasqlalchemy ==20.0.0.2 ; extra == 'test-unit'
Requires-Dist: pytest ==7.0.1 ; extra == 'test-unit'
Requires-Dist: pytest-order ; extra == 'test-unit'
Requires-Dist: dirty-equals ; extra == 'test-unit'
Requires-Dist: pytest-rerunfailures ; extra == 'test-unit'
Requires-Dist: factory-boy ~=3.3.3 ; extra == 'test-unit'
Requires-Dist: testcontainers ; extra == 'test-unit'
Requires-Dist: sqlalchemy-exasol <7,>=6 ; extra == 'test-unit'
Requires-Dist: exasol-integration-test-docker-environment <4,>=3.1.0 ; extra == 'test-unit'
Requires-Dist: testcontainers ==3.7.1 ; (python_version < "3.9") and extra == 'test'
Requires-Dist: testcontainers ~=4.8.0 ; (python_version >= "3.9") and extra == 'test'
Provides-Extra: trino
Requires-Dist: trino[sqlalchemy] ; extra == 'trino'
Requires-Dist: collate-data-diff[trino] ; extra == 'trino'
Provides-Extra: vertica
Requires-Dist: sqlalchemy-vertica[vertica-python] >=0.0.5 ; extra == 'vertica'
Requires-Dist: collate-data-diff[vertica] ; extra == 'vertica'

# revefi-ingestion

Revefi's customer-side metadata ingestion CLI. It runs an [OpenMetadata](https://open-metadata.org)
connector **inside your network**, under your own BI-tool admin credentials, and streams discovered
metadata to Revefi's ingestion API over HTTPS. **Your credentials never leave your environment** —
Revefi never sees your Looker password, client secret, or GitHub token.

The first supported source is **Looker** (dashboards, looks, explores, and warehouse-table lineage).

## Install

The package bundles the full OpenMetadata ingestion framework, so install it into an **isolated
environment** — not your project/shared venv. Recommended: [`pipx`](https://pipx.pypa.io):

```bash
pipx install "revefi-ingestion[looker]==0.1.0-b1"
# private index: pipx install --index-url <your-index> "revefi-ingestion[looker]==0.1.0-b1"
```

Or a dedicated venv:

```bash
python -m venv ~/.revefi-ingestion
~/.revefi-ingestion/bin/pip install "revefi-ingestion[looker]==0.1.0-b1"
```

Requires Python 3.9–3.11. This is a beta — pin the exact `0.1.0-bN` version (or pass `--pre`).

## Usage

Metadata-only (no lineage):

```bash
revefi-ingestion looker \
  --api-url   https://ingest.revefi.com \
  --token     <token-from-revefi> \
  --looker-host   https://yourco.cloud.looker.com \
  --client-id     <looker-api3-client-id> \
  --client-secret <looker-api3-client-secret>
```

With warehouse-table lineage (BigQuery example):

```bash
revefi-ingestion looker \
  --api-url   https://ingest.revefi.com \
  --token     <token-from-revefi> \
  --looker-host   https://yourco.cloud.looker.com \
  --client-id     <looker-api3-client-id> \
  --client-secret <looker-api3-client-secret> \
  --github-repo   yourorg/your-lookml-repo \
  --github-token  <github-read-token> \
  --db-service-prefix bq_prod \
  --warehouse-type BigQuery
```

- The `--github-*` and `--db-service-prefix` flags are required to resolve **warehouse-table
  lineage** from your LookML; omit them for metadata-only ingestion.
- `--warehouse-type` (default `BigQuery`; one of `BigQuery`, `Snowflake`, `Redshift`, `Databricks`)
  sets the SQL dialect used to parse your LookML `sql_table_name` references. **Set it to match the
  warehouse your Looker models read from** — a wrong dialect silently produces incorrect lineage.

### Secrets via environment variables

The three secret flags can be supplied as environment variables instead of on the command line, so
they don't end up in your shell history or process list:

| Flag | Environment variable |
|------|----------------------|
| `--token` | `REVEFI_INGEST_TOKEN` |
| `--client-secret` | `LOOKER_CLIENT_SECRET` |
| `--github-token` | `GITHUB_TOKEN` |

```bash
export REVEFI_INGEST_TOKEN=<token-from-revefi>
export LOOKER_CLIENT_SECRET=<looker-api3-client-secret>
export GITHUB_TOKEN=<github-read-token>      # only needed for warehouse-table lineage

revefi-ingestion looker \
  --api-url     https://ingest.revefi.com \
  --looker-host https://yourco.cloud.looker.com \
  --client-id   <looker-api3-client-id>
```

If both a flag and its environment variable are set, the flag wins.

Run `revefi-ingestion looker --help` for the full flag list.

## Development

From the repo's ingestion module, with the Python venv active:

```bash
cd ingestion
make install_dev_env
python -m pytest tests/unit/revefi -q
```

To exercise the CLI end-to-end without the Revefi backend, run a standalone mock ingestion server
that accepts the wire protocol over **https** (the client only supports https) and point `--api-url`
at it.
