pyproject.toml
Rama master · réplica de lectura del repositorio original.
[project]
name = "redash"
version = "26.11.0-dev"
description = "Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data."
authors = [
{ name = "Arik Fraimovich", email = "<arik@redash.io>" }
]
# to be added to/removed from the mailing list, please reach out to Arik via the above email or Discord
maintainers = [
{ name = "Redash maintainers and contributors", email = "<maintainers@redash.io>" }
]
readme = "README.md"
requires-python = ">=3.13,<3.14"
dependencies = [
"aniso8601==10.0.1",
"authlib==1.8.0",
"backoff==2.2.1",
"blinker==1.9.0",
"click==8.5.0",
"cryptography==50.0.1",
"disposable-email-domains>=0.0.52",
"email-validator==2.3.0",
"flask==3.1.3",
"flask-limiter==4.1.1",
"flask-login==0.6.3",
"flask-mail==0.10.0",
"flask-migrate==4.1.0",
"flask-restful==0.3.10",
"flask-sqlalchemy==3.1.1",
"flask-talisman==1.1.0",
"flask-wtf==1.3.0",
"funcy==2.1",
"gevent==26.9.0",
"greenlet==3.5.6",
"gunicorn==26.2.0",
"ifaddr==0.2.0",
"itsdangerous==2.2.0",
"jinja2==3.1.6",
"jsonschema==4.26.0",
"markupsafe==3.0.3",
"maxminddb-geolite2==2018.703",
"parsedatetime==2.6",
"passlib==1.7.4",
"psycopg2-binary==2.9.13",
"pyjwt==2.15.0",
"pyopenssl==26.4.0",
"pypd==1.1.0",
"pysaml2==7.5.5",
"pystache==0.6.8",
"python-dateutil==2.9.0.post0",
"python-dotenv==1.2.3",
"pytz>=2019.3",
"pyyaml==6.0.3",
"redis==7.4.1",
"regex==2026.9.10",
"requests==2.34.2",
"restrictedpython==8.5",
"rq==2.12.0",
"pyasynchat==1.0.5",
"rq-scheduler==0.14.0",
"semver==3.1.0",
"sentry-sdk==2.70.0",
"sqlalchemy==2.0.54",
"sqlalchemy-searchable==2.2.0",
"sqlalchemy-utils==0.42.1",
"sqlparse==0.6.0",
"sshtunnel==0.4.0",
"statsd==4.0.1",
"supervisor==4.3.0",
"supervisor-checks==0.8.1",
"ua-parser==1.0.2",
"urllib3==2.8.0",
"user-agents==2.2.0",
"werkzeug==3.1.8",
"wtforms==3.2.2",
"xlsxwriter==3.2.9",
"tzlocal==5.4.4",
"pyodbc==5.3.0",
"debugpy>=1.8.9,<2.0.0",
"paramiko==3.5.1",
"oracledb==26.0.1",
"ibm-db>=3.2.7,<4.0.0; platform_machine == 'x86_64' or platform_machine == 'AMD64'",
]
[tool.black]
target-version = ['py38']
line-length = 119
force-exclude = '''
/(
migrations
)/
'''
[dependency-groups]
all_ds = [
"atsd-client==3.0.6",
"azure-core>=1.38.0",
"azure-kusto-data==6.0.4",
"boto3==1.43.103",
"botocore==1.43.103",
"cassandra-driver==3.30.1",
"certifi>=2019.9.11",
"cmem-cmempy==25.5.0",
"databend-py==0.4.6",
"databend-sqlalchemy==0.2.4",
"databricks-sql-connector>=4.0.0,<5",
"duckdb==1.5.5",
"google-api-python-client==2.200.0",
"grpcio>=1.80.0,<2",
"gspread==6.2.1",
"h11>=0.16.0",
"httpcore>=1.0.9",
"impyla==0.24.0",
"influxdb==5.3.2",
"influxdb-client==1.50.0",
"marshmallow>=3.26.2",
"memsql==3.2.0",
"mysqlclient==2.3.0",
"numpy==2.5.3",
"nzpy>=1.15",
"openpyxl==3.1.5",
"pandas==3.0.6",
"phoenixdb==1.2.2",
"pinotdb>=0.4.5",
"protobuf==6.33.5",
"pyathena==3.36.0",
"pydgraph==25.2.0",
"pydruid==0.6.9",
"pyexasol==2.4.1",
"pyhive==0.7.0",
"pyignite==0.6.1",
"pymongo==4.18.2",
"pymssql>=2.3.1,<3.0.0",
"pyodbc==5.3.0",
"python-arango==8.3.5",
"python-rapidjson==1.25",
"requests-aws-sign==0.1.6",
"sasl>=0.4a1",
"simple-salesforce==1.12.10",
"snowflake-connector-python==4.7.5",
"td-client==1.7.0",
"thrift>=0.8.0",
"thrift-sasl>=0.1.0",
"trino>=0.305,<1.0",
"vertica-python==1.4.0",
"xlrd==2.0.2",
"e6data-python-connector==3.0.0",
]
ldap3 = [
"ldap3==2.9.1",
]
dev = [
"pytest==9.1.1",
"coverage==7.16.1",
"freezegun==1.5.5",
"jwcrypto==1.6.1",
"mock==5.2.0",
"pre-commit==4.6.2",
"ptpython==3.0.32",
"pytest-cov==7.1.0",
"watchdog==6.0.0",
"ruff==0.16.9",
]
[tool.uv]
package = false
default-groups = []
[tool.ruff]
exclude = [".git", "viz-lib", "node_modules", "migrations"]
[tool.ruff.lint]
ignore = ["E501"]
select = ["C9", "E", "F", "W", "I001", "UP004"]
[tool.ruff.lint.mccabe]
max-complexity = 15
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]