Skip to content

Commit 1bff541

Browse files
committed
WIP: trying to fix pyproject toml locked files
1 parent 1a1e14f commit 1bff541

File tree

4 files changed

+172
-46
lines changed

4 files changed

+172
-46
lines changed

.github/workflows/bump.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ jobs:
5757
5858
# Build CHANGELOG
5959
uv run --no-sync towncrier build --yes --version v$NEW_VERSION
60+
# Add locked targets to pyproject.toml
61+
uv run --no-sync python scripts/add-locked-targets-to-pyproject-toml.py
62+
# Propogate new version to meson.build
63+
uv run --no-sync python scripts/propogate-pyproject-metadata.py
6064
6165
# Commit, tag and push
6266
git commit -a -m "bump: version $BASE_VERSION -> $NEW_VERSION"

.github/workflows/deploy.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ jobs:
3434
uv-dependency-install-flags: "--all-extras --group dev"
3535
- name: Publish to PyPI
3636
run: |
37-
uv run --no-sync python scripts/add-locked-targets-to-pyproject-toml.py
3837
# TODO: move to using cibuildwheel so we have wheels for multiple platforms and python versions
3938
# starting docs: https://cibuildwheel.pypa.io/en/stable/
4039
uv build --sdist

pyproject.toml

Lines changed: 67 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ description = "Basic example of using fgen"
55
authors = [
66
{ name = "Zebedee Nicholls", email = "zebedee.nicholls@climate-energy-college.org" },
77
]
8-
license = { text = "3-Clause BSD License" }
98
requires-python = ">=3.9"
109
dependencies = [
1110
"attrs>=24.3.0",
@@ -15,7 +14,6 @@ dependencies = [
1514
]
1615
readme = "README.md"
1716
classifiers = [
18-
# Full list: https://pypi.org/classifiers/
1917
"Development Status :: 3 - Alpha",
2018
"Intended Audience :: Science/Research",
2119
"License :: OSI Approved :: BSD License",
@@ -32,50 +30,92 @@ classifiers = [
3230
"Typing :: Typed",
3331
]
3432

33+
[project.license]
34+
text = "3-Clause BSD License"
35+
3536
[project.urls]
3637
Homepage = "https://example-fgen-basic.readthedocs.io"
3738
Documentation = "https://example-fgen-basic.readthedocs.io"
3839
Changelog = "https://example-fgen-basic.readthedocs.io/en/stable/changelog"
3940
Repository = "https://github.com/openscm/example-fgen-basic"
4041
Issues = "https://github.com/openscm/example-fgen-basic/issues"
4142

42-
4343
[project.optional-dependencies]
4444
plots = [
4545
"matplotlib>=3.7.1",
4646
]
4747
full = [
4848
"example-fgen-basic[plots]",
4949
]
50+
locked = [
51+
"attrs==25.3.0",
52+
"numpy==2.0.2 ; python_full_version < '3.10'",
53+
"numpy==2.2.6 ; python_full_version == '3.10.*'",
54+
"numpy==2.3.2 ; python_full_version >= '3.11'",
55+
"typing-extensions==4.12.2",
56+
]
57+
plots-locked = [
58+
"attrs==25.3.0",
59+
"contourpy==1.3.0 ; python_full_version < '3.10'",
60+
"contourpy==1.3.2 ; python_full_version == '3.10.*'",
61+
"contourpy==1.3.3 ; python_full_version >= '3.11'",
62+
"cycler==0.12.1",
63+
"fonttools==4.59.0",
64+
"importlib-resources==6.5.2 ; python_full_version < '3.10'",
65+
"kiwisolver==1.4.7 ; python_full_version < '3.10'",
66+
"kiwisolver==1.4.9 ; python_full_version >= '3.10'",
67+
"matplotlib==3.9.4 ; python_full_version < '3.10'",
68+
"matplotlib==3.10.5 ; python_full_version >= '3.10'",
69+
"numpy==2.0.2 ; python_full_version < '3.10'",
70+
"numpy==2.2.6 ; python_full_version == '3.10.*'",
71+
"numpy==2.3.2 ; python_full_version >= '3.11'",
72+
"packaging==24.2",
73+
"pillow==11.3.0",
74+
"pyparsing==3.2.3",
75+
"python-dateutil==2.9.0.post0",
76+
"six==1.17.0",
77+
"typing-extensions==4.12.2",
78+
"zipp==3.23.0 ; python_full_version < '3.10'",
79+
]
80+
full-locked = [
81+
"attrs==25.3.0",
82+
"contourpy==1.3.0 ; python_full_version < '3.10'",
83+
"contourpy==1.3.2 ; python_full_version == '3.10.*'",
84+
"contourpy==1.3.3 ; python_full_version >= '3.11'",
85+
"cycler==0.12.1",
86+
"fonttools==4.59.0",
87+
"importlib-resources==6.5.2 ; python_full_version < '3.10'",
88+
"kiwisolver==1.4.7 ; python_full_version < '3.10'",
89+
"kiwisolver==1.4.9 ; python_full_version >= '3.10'",
90+
"matplotlib==3.9.4 ; python_full_version < '3.10'",
91+
"matplotlib==3.10.5 ; python_full_version >= '3.10'",
92+
"numpy==2.0.2 ; python_full_version < '3.10'",
93+
"numpy==2.2.6 ; python_full_version == '3.10.*'",
94+
"numpy==2.3.2 ; python_full_version >= '3.11'",
95+
"packaging==24.2",
96+
"pillow==11.3.0",
97+
"pyparsing==3.2.3",
98+
"python-dateutil==2.9.0.post0",
99+
"six==1.17.0",
100+
"typing-extensions==4.12.2",
101+
"zipp==3.23.0 ; python_full_version < '3.10'",
102+
]
50103

51104
[dependency-groups]
52-
# The development dependencies are pinned
53-
# to give a consistent starting point when using this template.
54-
# They should be removed/updated/changed/loosened as suits your project.
55-
# (As soon as you have a lock file, you can remove all of the implied dependencies.)
56-
# (This is a workaround for the fact
57-
# that we can't easily include the lock file in the copier template
58-
# because of how locking works and the order of operations).
59105
dev = [
60-
# Key dependencies
61-
# ----------------
62106
"fprettify>=0.3.7",
63107
"liccheck>=0.9.2",
64108
"mypy>=1.14.0",
65109
"pint>=0.24.4",
66-
# Required for liccheck, see https://github.com/dhatim/python-license-check/pull/113
67110
"pip>=24.3.1",
68111
"pre-commit>=4.0.1",
69-
# Required for liccheck, see https://github.com/dhatim/python-license-check/pull/113
70112
"setuptools>=75.6.0",
71113
"towncrier>=24.8.0",
72114
"tomli-w>=1.2.0",
73115
"tomli>=2.2.1",
74116
"typer>=0.15.2",
75117
]
76118
docs = [
77-
# Key dependencies
78-
# ----------------
79119
"attrs>=25.3.0",
80120
"mkdocs-autorefs>=1.4.2",
81121
"mkdocs-gen-files>=0.5.0",
@@ -87,54 +127,40 @@ docs = [
87127
"mkdocstrings-python>=1.16.12",
88128
"pymdown-extensions>=10.16.1",
89129
"ruff>=0.12.8",
90-
# Key dependencies for notebook_based_docs
91-
# ----------------------------------------
92130
"jupyterlab>=4.4.5",
93131
"jupytext>=1.17.2",
94132
"mkdocs-jupyter>=0.25.1",
95133
]
96-
# For minimum test dependencies.
97-
# These are used when running our minimum PyPI install tests.
98134
tests-min = [
99-
# Key dependencies
100-
# ----------------
101135
"pytest>=8.3.4",
102136
]
103-
# Full test dependencies.
104137
tests-full = [
105-
# Key dependencies
106-
# ----------------
107138
"pytest-cov>=6.0.0",
108139
]
109-
# Test dependencies
110-
# (partly split because liccheck uses toml,
111-
# which doesn't support inhomogeneous arrays).
112140
tests = [
113-
{include-group = "tests-min"},
114-
{include-group = "tests-full"},
141+
{ include-group = "tests-min" },
142+
{ include-group = "tests-full" },
115143
]
116144
all-dev = [
117-
{include-group = "dev"},
118-
{include-group = "docs"},
119-
{include-group = "tests"},
145+
{ include-group = "dev" },
146+
{ include-group = "docs" },
147+
{ include-group = "tests" },
120148
]
121149

122-
# Start here, replace with whate we have in our example
123150
[build-system]
124151
build-backend = "mesonpy"
125152
requires = [
126-
"meson-python>=0.15.0",
127-
"numpy",
153+
"meson-python>=0.15.0",
154+
"numpy",
128155
]
129156

130-
# https://mesonbuild.com/meson-python/how-to-guides/meson-args.html
131157
[tool.meson-python.args]
132158
setup = [
133-
'--default-library=static',
134-
'-Dpyprojectwheelbuild=enabled',
135-
]
159+
"--default-library=static",
160+
"-Dpyprojectwheelbuild=enabled",
161+
]
136162
install = [
137-
'--skip-subprojects',
163+
"--skip-subprojects",
138164
]
139165

140166
[tool.coverage.run]
@@ -143,7 +169,6 @@ source = [
143169
]
144170
branch = true
145171
omit = [
146-
# TODO: check this file
147172
"*exceptions.py",
148173
"*runtime_helpers.py",
149174
]
@@ -154,10 +179,8 @@ skip_empty = true
154179
show_missing = true
155180
exclude_also = [
156181
"if TYPE_CHECKING",
157-
# Type overloading lines
158182
"@overload",
159183
"\\.\\.\\.",
160-
161184
]
162185

163186
[tool.mypy]

uv.lock

Lines changed: 101 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)