Skip to content

Commit 44d9a06

Browse files
committed
Begin work on firedrake-dev-patch
1 parent b5d3b46 commit 44d9a06

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

requirements-build.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Cython>=3.0
2+
libsupermesh
3+
mpi4py>3; python_version >= '3.13'
4+
mpi4py; python_version < '3.13'
5+
numpy
6+
pkgconfig
7+
pybind11
8+
setuptools>61.2
9+
rtree>=1.2

scripts/firedrake-dev-patch

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/usr/bin/env python3
2+
3+
"""TODO"""
4+
5+
import argparse
6+
import pathlib
7+
import tomli
8+
import tomli_w
9+
10+
11+
# TODO:
12+
# * logging
13+
# * save prev pyproj as pyproject.toml.orig
14+
# * also patch requirements-build.txt
15+
16+
def main():
17+
args = parse_args()
18+
19+
repo_root = pathlib.Path(__file__).parent.parent
20+
21+
with open(repo_root / "pyproject.toml", "rb") as f:
22+
data = tomli.load(f)
23+
24+
removed_deps = set()
25+
removed_deps |= filter_deps(data["project"]["dependencies"], args.existing_packages)
26+
for optional_deps in data["project"]["optional-dependencies"].values():
27+
removed_deps |= filter_deps(optional_deps, args.existing_packages)
28+
29+
print("Removed: ", removed_deps)
30+
31+
with open(repo_root / "pyproject.toml", "wb") as f:
32+
tomli_w.dump(data, f)
33+
34+
35+
def parse_args():
36+
parser = argparse.ArgumentParser()
37+
parser.add_argument("existing_packages", nargs="*")
38+
return parser.parse_args()
39+
40+
41+
def filter_deps(deps, existing_packages):
42+
to_remove = set()
43+
for dep in deps:
44+
if any(dep.startswith(p) for p in existing_packages):
45+
to_remove.add(dep)
46+
for dep in to_remove:
47+
deps.remove(dep)
48+
return to_remove
49+
50+
51+
if __name__ == "__main__":
52+
main()

0 commit comments

Comments
 (0)