1717USINGS = ["requirements" , "poetry" , "PEP631" ]
1818
1919
20- def getReqs (using : str ) -> set [ucstr ]:
20+ def getReqs (using : str , skipDependencies : list ( ucstr ) ) -> set [ucstr ]:
2121 """Get requirements for the end user project/ lib.
2222
2323 >>> getReqs("poetry")
@@ -29,6 +29,7 @@ def getReqs(using: str) -> set[ucstr]:
2929
3030 Args:
3131 using (str): use requirements, poetry or PEP631.
32+ skipDependencies (list[str]): list of dependencies to skip.
3233
3334 Returns:
3435 set[str]: set of requirement packages
@@ -50,13 +51,16 @@ def getReqs(using: str) -> set[ucstr]:
5051 if using == "requirements" :
5152 requirementsPaths = [Path (x ) for x in (extras or "requirements.txt" ).split (";" )]
5253
53- return _doGetReqs (using , extras , pyproject , requirementsPaths )
54+ return _doGetReqs (using , skipDependencies , extras , pyproject , requirementsPaths )
5455
5556
5657def _doGetReqs (
57- using : str , extras : str | None , pyproject : dict [str , Any ], requirementsPaths : list [Path ]
58+ using : str ,
59+ skipDependencies : list (ucstr ),
60+ extras : str | None ,
61+ pyproject : dict [str , Any ],
62+ requirementsPaths : list [Path ],
5863) -> set [ucstr ]:
59-
6064 reqs = set ()
6165 extrasReqs = {}
6266
@@ -99,9 +103,7 @@ def resolveExtraReq(extraReq: str) -> ucstr | None:
99103 project = pyproject ["project" ]
100104 reqLists = [project ["dependencies" ]]
101105 except KeyError as error :
102- raise RuntimeError (
103- "Could not find specification of requirements (pyproject.toml)."
104- ) from error
106+ raise RuntimeError ("Could not find specification of requirements (pyproject.toml)." ) from error
105107 if extras :
106108 reqLists .extend (project ["optional-dependencies" ][x ] for x in extras .split (";" ))
107109 for reqList in reqLists :
@@ -120,10 +122,17 @@ def resolveExtraReq(extraReq: str) -> ucstr | None:
120122 continue
121123 reqs .add (resolveReq (line ))
122124
125+ # Remove PYTHON if define as requirement
123126 try :
124127 reqs .remove ("PYTHON" )
125128 except KeyError :
126129 pass
130+ # Remove skip dependencies
131+ for skipDependency in skipDependencies :
132+ try :
133+ reqs .remove (skipDependency )
134+ except KeyError :
135+ pass
127136
128137 # Get Dependencies (1 deep)
129138 requirementsWithDeps = reqs .copy ()
@@ -160,6 +169,7 @@ def getDepsWithLicenses(
160169 failPackages : list [ucstr ],
161170 ignoreLicenses : list [ucstr ],
162171 failLicenses : list [ucstr ],
172+ skipDependencies : list [ucstr ],
163173) -> tuple [License , set [PackageInfo ]]:
164174 """Get a set of dependencies with licenses and determine license compatibility.
165175
@@ -169,13 +179,14 @@ def getDepsWithLicenses(
169179 failPackages (list[ucstr]): a list of packages to fail (compat=False)
170180 ignoreLicenses (list[ucstr]): a list of licenses to ignore (skipped, compat may still be False)
171181 failLicenses (list[ucstr]): a list of licenses to fail (compat=False)
182+ skipDependencies (list[ucstr]): a list of dependencies to skip (compat=False)
172183
173184 Returns:
174185 tuple[License, set[PackageInfo]]: tuple of
175186 my package license
176187 set of updated dependencies with licenseCompat set
177188 """
178- reqs = getReqs (using )
189+ reqs = getReqs (using , skipDependencies )
179190
180191 # Get my license
181192 myLiceTxt = packageinfo .getMyPackageLicense ()
0 commit comments