[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "bizzflow-toolkit"
description="Bizzflow is ETL (extract - transform - load) template based on standard native cloud services. Supporting the three main cloud providers (Google Cloud Platform / Amazon AWS / MS Azure), it takes all the advantages. You pay only for services you really use. Perfect for teams who want to have direct relationship with their cloud provider. No matter if it is because of security or because you already have existing contract."
readme = "README.md"
authors=[{ name = "Bizztreat", email = "info@bizztreat.com" }]
version="2.3.0-dev2"
requires-python = ">3.6.0,<4"
classifiers = [
    "Programming Language :: Python :: 3",
]
dependencies = [
        "apache-airflow[password,postgres]>=1.10.0,<3.0.0",
        "jsonschema>=3.0.0,<4.0.0",
        "PyYAML>=6.0,<7.0",
        "retry_helper>=0.0.4,<1.0.0",
        "fabric>=2.0.0,<3.0.0",
        "invoke>=1.4.0,<2.0.0",
        "sqlparse>=0.4.0,<1.0.0",
        "paramiko>=2.0.0,<3.0.0",
        "statsd>=3.0.0,<4.0.0",
]


[project.optional-dependencies]
amazon = [
    "boto3>=1.0.0,<2.0.0",
    "apache-airflow[amazon]>=1.10.0,<3.0.0",
]
google = [
    "apache-airflow[google]>=1.10.0,<3.0.0",
    "google-api-core>=1.23.0,<2.0.0",
    "google-auth>=1.22.0,<2.0.0",
    "google-cloud-bigquery>=2.2.0,<3.0.0",
    "google-cloud-storage>=1.32.0,<2.0.0",
]
azure = [
    "apache-airflow[azure]>=1.10.0,<3.0.0",
    "azure-storage-blob>=12.8.0,<13.0.0",
    "pyodbc>=4.0.0,<5.0.0",
]
onprem = [
    "pyodbc>=4.0.0,<5.0.0",
]
snowflake = [
    "snowflake-connector-python>=2.0.0,<3.0.0",
]
redshift = [
    "redshift-connector>=2.0.0,<3.0.0",
]
test = [
    "pytest",
    "pytest-cov",
]

[project.urls]
Homepage = "https://www.bizzflow.net/"
GIT = "https://gitlab.com/bizzflow-etl/toolkit"

[tool.setuptools]
py-modules = []
packages = ["toolkit"]

[tool.setuptools.package-data]
"toolkit.dags.helpers" = ["*.html",]
"toolkit.managers.configuration" = ["schemas/v1/*.json", "schemas/v2/*.json"]


[tool.poetry]
name = "bizzflow-toolkit"
version = "2.2.2"
description = "Bizzflow is ETL (extract - transform - load) template based on standard native cloud services. Supporting the three main cloud providers (Google Cloud Platform / Amazon AWS / MS Azure), it takes all the advantages. You pay only for services you really use. Perfect for teams who want to have direct relationship with their cloud provider. No matter if it is because of security or because you already have existing contract."
authors = ["Bizztreat <owner@bizzflow.net>"]
readme = "README.md"
homepage = "https://www.bizzflow.net/"
repository = "https://gitlab.com/bizzflow-etl/toolkit"
documentation = "https://wiki.bizzflow.net/"
include = ["toolkit/dags/helpers/template.html", "toolkit/managers/configuration/schemas/*.json"]
packages = [
    { include = "toolkit" }
]
license = "Apache-2.0"

[tool.poetry.dependencies]
python = "^3.6" # apache-airflow (1.10.12) depends on flask-appbuilder (>=2.2,<3.0), and flask-appbuilder (2.3.4) requires Python ~=3.6
apache-airflow = {version = "^1.10.15", extras = ["password", "postgres", "amazon", "azure", "google"]}
boto3 = { version = "<1.16"} # maximum allowed version for snowflake-connector-python
cffi = "1.14.0"
fabric = "^2.5.0"
google-api-core = { version = "^1.23.0"}
google-auth = { version = "^1.22.1"}
google-cloud-bigquery = { version = "^2.2.0"}
google-cloud-storage = { version = "^1.32.0"}
invoke = "^1.4.1"
snowflake-connector-python = { version = "<=2.3.6"}
sqlparse = "^0.4.1"
paramiko = "^2.7.2"
statsd = "^3.3.0"
retry_helper = "^0.0.4"
azure-storage-blob = "12.8.0"
pyodbc = { version = "^4.0.30"}
python3-openid = "^3.2.0"
#Need to be due to incompatibility with 1.4.x and 2.5.x versions
SQLAlchemy = "~1.3.23"
Flask-SQLAlchemy = "~2.4.4"
jsonschema = "~=3.2.0"
PyYAML = "^6.0"
redshift-connector = "^2.0.907"

[tool.poetry.dev-dependencies]
pytest = "^6.2.4"
pytest-cov = "^3.0.0"

[tool.black]
line_length = 120
target-version = ["py36"]

[tool.isort]
line_length = 120
combine_star = true
multi_line_output = 3
order_by_type = true
include_trailing_comma = true
known_airflow = ["airflow",]
sections=["FUTURE","STDLIB","AIRFLOW","THIRDPARTY", "FIRSTPARTY","LOCALFOLDER"]

[tool.pylint."MESSAGES CONTROL"]
max-line-length = 120
