File tree Expand file tree Collapse file tree 2 files changed +61
-0
lines changed
Expand file tree Collapse file tree 2 files changed +61
-0
lines changed Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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 ()
You can’t perform that action at this time.
0 commit comments