pyproject.toml•3.98 kB
[build-system]
build-backend = "hatchling.build"
requires = ["hatchling"]
[project]
authors = [
{name = "Vizro Team"}
]
classifiers = [
"Programming Language :: Python",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14"
]
dependencies = [
"dash>=3.1.1,<4", # temporary upper bound to avoid breaking changes in Dash v4
"dash_bootstrap_components>=2", # 2.0.0 needed to support dash>=3.0.0
"dash-ag-grid>=31.3.1", # 31.3.1 needed to support dash>=3.0.0
"dash_mantine_components>=1", # 1.0.0 needed to support dash>=3.0.0
"pandas>=2",
"plotly>=5.24.0",
# Must be <= the version in pre-commit mypy hook, sync manually
# When updating this to >=2.9, search code for `but this requires pydantic >= 2.9` to find all
# occurrences of code that is now ready to change
"pydantic>=2.7.0",
"flask_caching>=2",
"wrapt>=1",
"black",
"autoflake",
"packaging",
"python-box"
]
description = "Vizro is a low-code framework for building high-quality data visualization apps."
dynamic = ["version"]
license-files = {paths = ["LICENSE.txt"]}
name = "vizro"
readme = "README.md"
requires-python = ">=3.10"
[project.optional-dependencies]
kedro = [
"kedro>=0.19.9",
"kedro-datasets"
]
[project.urls]
Documentation = "https://github.com/mckinsey/vizro#readme"
Issues = "https://github.com/mckinsey/vizro/issues"
Source = "https://github.com/mckinsey/vizro"
[tool.coverage.paths]
vizro = ["src/vizro"] # omit tests for clarity, although this can be useful to see what test lines DID NOT run
[tool.coverage.report]
exclude_lines = [
"no cov",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:"
]
fail_under = 91
show_missing = true
skip_covered = true
[tool.coverage.run]
branch = true
parallel = true
source_pkgs = ["vizro"]
[tool.pytest.ini_options]
addopts = [
# Allow test files to have the same name in different directories.
"--import-mode=importlib"
]
filterwarnings = [
"error",
# Ignore until pandas 3 is released:
"ignore:(?s).*Pyarrow will become a required dependency of pandas:DeprecationWarning",
# Ignore warning when using the fig.layout.title inside examples:
"ignore:Using the `title` argument in your Plotly chart function may cause misalignment:UserWarning",
# Ignore deprecation warning until this is solved: https://github.com/plotly/dash/issues/2590:
"ignore:HTTPResponse.getheader():DeprecationWarning",
# Ignore this warning for firefox screenshot tests
"ignore:get_logs always return None with webdrivers other than Chrome",
# Ignore dash_data_table deprecation warning
"ignore:(?s).*The dash_table.DataTable will be removed from the builtin dash components in a future major version:DeprecationWarning",
# Ignore Dash's use of deprecated method (due to be removed in Python 3.16).
"ignore:'asyncio.iscoroutinefunction' is deprecated:DeprecationWarning",
# Ignore kedro warnings. Note you can't use kedro.*Warning as categories here since pytest would then import kedro#
# and trigger the 3.14 error before it can be ignored.
"ignore:`DataCatalog` has been deprecated and will be replaced by `KedroDataCatalog`",
"ignore:Kedro is not yet fully compatible with this Python version."
]
markers = [
"mobile_screenshots: marks tests for chrome mobile screenshots"
]
norecursedirs = ["tests/tests_utils", "tests/js"]
pythonpath = ["tests/tests_utils", "tests/e2e/vizro/custom_components"]
[tool.ruff]
extend = "../pyproject.toml"
src = ["src"]
[tool.ruff.lint.extend-per-file-ignores]
# Ignore current false positives for pydantic models subclassing across files
# See: https://github.com/astral-sh/ruff/issues/5243#issuecomment-1860776975
"**/models/**" = ["RUF012"]
# Ignore missing docstrings in visual-vocabulary examples to keep them succinct.
"examples/visual-vocabulary/pages/examples/**" = ["D100", "D103"]