11#!/usr/bin/env python3
22from copy import copy
33from pathlib import Path
4+
45from packaging .requirements import Requirement , SpecifierSet
56
67try :
910 from pip ._vendor .tomli import loads
1011
1112repo_root = Path (__file__ ).parent .parent
12- pyproject = repo_root / " pyproject.toml"
13- reqs = repo_root / " requirements.txt"
14- min_reqs = repo_root / " min-requirements.txt"
13+ pyproject = repo_root / ' pyproject.toml'
14+ reqs = repo_root / ' requirements.txt'
15+ min_reqs = repo_root / ' min-requirements.txt'
1516
1617requirements = [
1718 Requirement (req )
18- for req in loads (pyproject .read_text ())[" project" ][ " dependencies" ]
19+ for req in loads (pyproject .read_text ())[' project' ][ ' dependencies' ]
1920]
2021
2122script_name = Path (__file__ ).relative_to (repo_root )
@@ -25,20 +26,20 @@ def to_min(req):
2526 if req .specifier :
2627 req = copy (req )
2728 try :
28- min_spec = [spec for spec in req .specifier if spec .operator in (">=" , "~=" )][0 ]
29+ min_spec = [spec for spec in req .specifier if spec .operator in ('>=' , '~=' )][0 ]
2930 except IndexError :
3031 return req
31- min_spec ._spec = ("==" ,) + min_spec ._spec [1 :]
32+ min_spec ._spec = ('==' ,) + min_spec ._spec [1 :]
3233 req .specifier = SpecifierSet (str (min_spec ))
3334 return req
3435
3536
36- lines = [f" # Auto-generated by { script_name } " , "" ]
37+ lines = [f' # Auto-generated by { script_name } ' , '' ]
3738
3839# Write requirements
3940lines [1 :- 1 ] = [str (req ) for req in requirements ]
40- reqs .write_text (" \n " .join (lines ))
41+ reqs .write_text (' \n ' .join (lines ))
4142
4243# Write minimum requirements
4344lines [1 :- 1 ] = [str (to_min (req )) for req in requirements ]
44- min_reqs .write_text (" \n " .join (lines ))
45+ min_reqs .write_text (' \n ' .join (lines ))
0 commit comments