-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpyproject.toml
More file actions
107 lines (95 loc) · 3.77 KB
/
pyproject.toml
File metadata and controls
107 lines (95 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "afcharts"
version = "1.0.0-beta"
description = "A python package to produce charts following UK Government Analysis Function guidance"
readme = "README.md"
license = { file = "LICENSE" }
authors = [{ name = "Crown Copyright" }]
maintainers = [
{ name = "Nick Henden", email = "Nick.Henden@ukhsa.gov.uk" },
{ name = "Tom Farley", email = "tom.farley@ukhsa.gov.uk" },
{ name = "Stelios Georgiou", email = "Stelios.Georgiou@ukhsa.gov.uk" },
{ name = "Frederico Rodrigues", email = "fred.rodrigues@defra.gov.uk" },
{ name = "Peter Brohan", email = "peter.brohan@communities.gov.uk"},
{ name = "Fahim Hossain", email = "fahim.hossain@ukhsa.gov.uk"}
# Other contributors, please add your details here
]
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Development Status :: 3 - Alpha",
]
requires-python = ">=3.10"
dependencies = [ # required dependencies
"matplotlib>=3.10.3",
"plotly>=6.1.2",
"typeguard>=4.4.4",
'PyYAML >= 5.0',
]
[dependency-groups]
dev = [ # package developer dependencies
"ipython>=8.26.0", # Installing ipython will enable colourised console output/tracebacks
"mypy>=1.15.0", # Mypy static type checker/linter
"types-PyYAML", # type stub package used by mypy to check code that uses PyYAML
"pre-commit>=3.8.0", # Used to run pre-commit hook linting and formatting checks
"ruff>=0.6.2", # Python linting/formatting tool combines black, flake8 etc. Run `ruff check --fix`/`ruff format`
"pandas>=2.2.2", # Used to manipulate tabular data
"afcharts", # Install current package in developer mode as workspace package
]
test = [ # package unit testing dependencies
"pandas>=2.2.2", # Used to manipulate tabular data
"pytest>=8.2.2", # Unit/regression testing etc.
"pytest-cov>=5.0.0", # Test code coverage
"pytest-mock", # Mock wrapper for unit tests
"pytest-sugar>=1.0.0", # Prettier pytest terminal output
]
docs = [ # cookbook dependencies
"ipykernel", # For rendering Quarto
"nbclient", # For rendering Quarto
"pandas>=2.2.2", # Used to manipulate tabular data
]
[project.urls]
"Homepage" = "https://github.com/best-practice-and-impact/afcharts-py"
"Documentation" = "https://best-practice-and-impact.github.io/afcharts-py/"
"Source" = "https://github.com/best-practice-and-impact/afcharts-py"
"Issue Tracker" = "https://github.com/best-practice-and-impact/afcharts-py/issues"
[tool.uv]
default-groups = [
"dev",
"test",
"docs",
] # `uv sync` will all install dependencies by default
[tool.uv.sources]
afcharts = { workspace = true } # Install as editable package (developer mode like pip install -e .)
[tool.setuptools]
package-dir = { "" = "src" } # Maps package names to their actual file paths.
[tool.setuptools.packages.find]
where = ["src"] # Packages are located in src/ top level directory
exclude = ["docs*", "Documentation*", "build"]
[tool.setuptools.package-data]
afcharts = ["*.mplstyle", "config/af_colours.yaml"]
[tool.ruff]
line-length = 120
target-version = "py313"
lint.select = [
"E", # pycodestyle
"W", # pycodestyle
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C90", # mccabe cyclomatic complexity
"G", # flake8-logging-format
]
exclude = ["migrations/versions/"]
lint.ignore = []
[tool.ruff.lint.pydocstyle]
convention = "google" # Accepts one of {google,numpy,pep257}
[tool.mypy] # Config for mypy static type checking
python_version = "3.13"
check_untyped_defs = true
ignore_missing_imports = true
warn_unused_ignores = true