2021-08-02 15:08:30 +05:30
|
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
|
|
# this work for additional information regarding copyright ownership.
|
|
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
|
# (the "License"); you may not use this file except in compliance with
|
|
|
|
# the License. You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
2021-08-01 14:27:44 -07:00
|
|
|
import os
|
2021-10-26 21:44:24 +05:30
|
|
|
from typing import Dict, Set
|
2021-08-01 14:27:44 -07:00
|
|
|
|
2021-10-26 21:44:24 +05:30
|
|
|
from setuptools import find_namespace_packages, setup
|
2021-08-01 14:27:44 -07:00
|
|
|
|
|
|
|
|
|
|
|
def get_version():
|
|
|
|
root = os.path.dirname(__file__)
|
|
|
|
changelog = os.path.join(root, "CHANGELOG")
|
|
|
|
with open(changelog) as f:
|
|
|
|
return f.readline().strip()
|
|
|
|
|
|
|
|
|
|
|
|
def get_long_description():
|
|
|
|
root = os.path.dirname(__file__)
|
2021-08-13 01:40:56 +05:30
|
|
|
with open(os.path.join(root, "README.md")) as f:
|
2021-08-01 14:27:44 -07:00
|
|
|
description = f.read()
|
|
|
|
description += "\n\nChangelog\n=========\n\n"
|
|
|
|
with open(os.path.join(root, "CHANGELOG")) as f:
|
|
|
|
description += f.read()
|
|
|
|
return description
|
|
|
|
|
|
|
|
|
|
|
|
base_requirements = {
|
|
|
|
"commonregex",
|
2021-08-14 00:58:21 +05:30
|
|
|
"idna<3,>=2.5",
|
2021-08-01 14:27:44 -07:00
|
|
|
"click<7.2.0,>=7.1.1",
|
|
|
|
"expandvars>=0.6.5"
|
|
|
|
"dataclasses>=0.8"
|
|
|
|
"typing_extensions>=3.7.4"
|
|
|
|
"mypy_extensions>=0.4.3",
|
|
|
|
"typing-inspect",
|
2021-10-31 05:07:39 +01:00
|
|
|
"pydantic>=1.7.4",
|
2021-08-01 14:27:44 -07:00
|
|
|
"pydantic[email]>=1.7.2",
|
|
|
|
"google>=3.0.0",
|
|
|
|
"google-auth>=1.33.0",
|
|
|
|
"python-dateutil>=2.8.1",
|
|
|
|
"email-validator>=1.0.3",
|
|
|
|
"wheel~=0.36.2",
|
|
|
|
"python-jose==3.3.0",
|
2021-08-14 00:54:16 +05:30
|
|
|
"sqlalchemy>=1.3.24",
|
|
|
|
"sql-metadata~=2.0.0",
|
2021-09-29 11:32:09 -07:00
|
|
|
"requests~=2.26",
|
2021-10-26 21:44:24 +05:30
|
|
|
"PyYAML",
|
2021-09-19 13:59:14 +05:30
|
|
|
}
|
|
|
|
|
2021-09-27 08:43:38 -07:00
|
|
|
report_requirements = {
|
|
|
|
"asgiref==3.4.1",
|
|
|
|
"Django==3.2.7",
|
|
|
|
"pytz==2021.1",
|
2021-10-26 21:44:24 +05:30
|
|
|
"sqlparse==0.4.2",
|
2021-09-27 08:43:38 -07:00
|
|
|
}
|
|
|
|
|
2021-08-01 14:27:44 -07:00
|
|
|
base_plugins = {
|
|
|
|
"query-parser",
|
|
|
|
"metadata-usage",
|
|
|
|
"file-stage",
|
|
|
|
"sql-metadata~=2.0.0",
|
|
|
|
}
|
|
|
|
plugins: Dict[str, Set[str]] = {
|
2021-11-20 14:08:27 -08:00
|
|
|
"amundsen": {"neo4j~=4.4.0"},
|
2021-08-13 02:03:39 +05:30
|
|
|
"athena": {"PyAthena[SQLAlchemy]"},
|
2021-11-24 10:01:35 +05:30
|
|
|
"bigquery": {"openmetadata-sqlalchemy-bigquery==0.2.1"},
|
2021-08-01 14:27:44 -07:00
|
|
|
"bigquery-usage": {"google-cloud-logging", "cachetools"},
|
2021-11-13 00:00:28 +05:30
|
|
|
"docker": {"docker==5.0.3"},
|
2021-11-16 01:02:45 -08:00
|
|
|
"dbt": {},
|
2021-08-01 14:27:44 -07:00
|
|
|
"elasticsearch": {"elasticsearch~=7.13.1"},
|
2021-11-10 20:58:13 +05:30
|
|
|
"glue": {"boto3~=1.19.12"},
|
2021-10-26 21:44:24 +05:30
|
|
|
"hive": {
|
|
|
|
"openmetadata-sqlalchemy-hive==0.2.0",
|
|
|
|
"thrift~=0.13.0",
|
|
|
|
"sasl==0.3.1",
|
|
|
|
"thrift-sasl==0.4.3",
|
|
|
|
},
|
2021-08-21 17:52:24 -07:00
|
|
|
"kafka": {"confluent_kafka>=1.5.0", "fastavro>=1.2.0"},
|
2021-08-01 14:27:44 -07:00
|
|
|
"ldap-users": {"ldap3==2.9.1"},
|
2021-09-03 09:02:03 +05:30
|
|
|
"looker": {"looker-sdk==21.12.2"},
|
2021-08-13 02:03:39 +05:30
|
|
|
"mssql": {"sqlalchemy-pytds>=0.3"},
|
|
|
|
"mssql-odbc": {"pyodbc"},
|
|
|
|
"mysql": {"pymysql>=1.0.2"},
|
|
|
|
"oracle": {"cx_Oracle"},
|
2021-08-18 00:41:24 -07:00
|
|
|
"presto": {"pyhive~=0.6.3"},
|
2021-10-07 11:15:34 -07:00
|
|
|
"trino": {"sqlalchemy-trino"},
|
2021-08-13 02:03:39 +05:30
|
|
|
"postgres": {"pymysql>=1.0.2", "psycopg2-binary", "GeoAlchemy2"},
|
2021-09-22 15:09:24 +05:30
|
|
|
"redash": {"redash-toolbelt==0.1.4"},
|
2021-10-26 21:44:24 +05:30
|
|
|
"redshift": {
|
|
|
|
"openmetadata-sqlalchemy-redshift==0.2.1",
|
|
|
|
"psycopg2-binary",
|
|
|
|
"GeoAlchemy2",
|
|
|
|
},
|
|
|
|
"redshift-usage": {
|
|
|
|
"openmetadata-sqlalchemy-redshift==0.2.1",
|
|
|
|
"psycopg2-binary",
|
|
|
|
"GeoAlchemy2",
|
|
|
|
},
|
2021-09-19 13:59:14 +05:30
|
|
|
"data-profiler": {"openmetadata-data-profiler"},
|
2021-08-13 02:03:39 +05:30
|
|
|
"snowflake": {"snowflake-sqlalchemy<=1.2.4"},
|
|
|
|
"snowflake-usage": {"snowflake-sqlalchemy<=1.2.4"},
|
2021-10-26 21:44:24 +05:30
|
|
|
"sample-data": {"faker~=8.1.1"},
|
2021-09-09 22:11:19 -07:00
|
|
|
"superset": {},
|
2021-09-12 00:16:10 +05:30
|
|
|
"tableau": {"tableau-api-lib==0.1.22"},
|
2021-09-27 08:43:38 -07:00
|
|
|
"vertica": {"sqlalchemy-vertica[vertica-python]>=0.0.5"},
|
2021-09-29 11:32:09 -07:00
|
|
|
"report-server": report_requirements,
|
2021-10-30 21:35:30 +05:30
|
|
|
"airflow": {"apache-airflow >= 1.10.2"},
|
2021-11-21 13:06:53 +01:00
|
|
|
"salesforce": {"simple_salesforce~=1.11.4"},
|
|
|
|
"okta": {"okta~=2.3.0"},
|
2021-08-01 14:27:44 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
build_options = {"includes": ["_cffi_backend"]}
|
|
|
|
setup(
|
2021-08-13 01:40:56 +05:30
|
|
|
name="openmetadata-ingestion",
|
2021-11-24 10:01:35 +05:30
|
|
|
version="0.4.5.dev1",
|
2021-08-13 01:40:56 +05:30
|
|
|
url="https://open-metadata.org/",
|
|
|
|
author="OpenMetadata Committers",
|
2021-08-01 14:27:44 -07:00
|
|
|
license="Apache License 2.0",
|
2021-08-13 01:40:56 +05:30
|
|
|
description="Ingestion Framework for OpenMetadata",
|
|
|
|
long_description=get_long_description(),
|
2021-08-01 14:27:44 -07:00
|
|
|
long_description_content_type="text/markdown",
|
|
|
|
python_requires=">=3.8",
|
|
|
|
options={"build_exe": build_options},
|
|
|
|
package_dir={"": "src"},
|
2021-08-13 01:40:56 +05:30
|
|
|
zip_safe=False,
|
2021-10-26 21:44:24 +05:30
|
|
|
dependency_links=[],
|
2021-08-13 01:40:56 +05:30
|
|
|
project_urls={
|
|
|
|
"Documentation": "https://docs.open-metadata.org/",
|
|
|
|
"Source": "https://github.com/open-metadata/OpenMetadata",
|
|
|
|
},
|
2021-10-26 21:44:24 +05:30
|
|
|
packages=find_namespace_packages(where="./src", exclude=["tests*"]),
|
2021-08-01 14:27:44 -07:00
|
|
|
entry_points={
|
|
|
|
"console_scripts": ["metadata = metadata.cmd:metadata"],
|
2021-10-26 21:44:24 +05:30
|
|
|
"apache_airflow_provider": [
|
|
|
|
"provider_info = airflow_provider_openmetadata:get_provider_config"
|
|
|
|
],
|
2021-08-01 14:27:44 -07:00
|
|
|
},
|
|
|
|
install_requires=list(base_requirements),
|
|
|
|
extras_require={
|
|
|
|
"base": list(base_requirements),
|
2021-10-26 21:44:24 +05:30
|
|
|
**{plugin: list(dependencies) for (plugin, dependencies) in plugins.items()},
|
2021-09-12 00:16:10 +05:30
|
|
|
"all": list(
|
|
|
|
base_requirements.union(
|
2021-10-26 21:44:24 +05:30
|
|
|
*[requirements for plugin, requirements in plugins.items()]
|
2021-09-12 00:16:10 +05:30
|
|
|
)
|
2021-10-26 21:44:24 +05:30
|
|
|
),
|
|
|
|
},
|
2021-08-01 14:27:44 -07:00
|
|
|
)
|