1717
1818
1919from argparse import OPTIONAL , ArgumentParser
20+ from collections .abc import Generator
2021from json import loads as json_loads
2122from os import getenv
2223from os .path import join
2324from textwrap import dedent
24- from typing import TYPE_CHECKING , Any , Dict , FrozenSet , Generator , List , Optional , Set , Tuple
25+ from typing import TYPE_CHECKING , Any , Optional
2526
2627from cyclonedx .exception .model import InvalidUriException , UnknownHashTypeException
2728from cyclonedx .model import ExternalReference , ExternalReferenceType , HashType , Property , XsUri
4142
4243 from cyclonedx .model .bom import Bom
4344
44- NameDict = Dict [str , Any ]
45+ NameDict = dict [str , Any ]
4546
4647
4748class PipenvBB (BomBuilder ):
@@ -96,15 +97,15 @@ def __init__(self, *,
9697
9798 def __call__ (self , * , # type:ignore[override]
9899 project_directory : str ,
99- categories : List [str ],
100+ categories : list [str ],
100101 dev : bool ,
101102 pyproject_file : Optional [str ],
102103 mc_type : 'ComponentType' ,
103104 ** __ : Any ) -> 'Bom' :
104105
105106 # the group-args shall mimic the ones from Pipenv, which uses (comma and/or space)-separated lists
106107 # values be like: 'foo bar,bazz' -> ['foo', 'bar', 'bazz']
107- lock_groups : Set [str ] = set ()
108+ lock_groups : set [str ] = set ()
108109 if len (categories ) == 0 :
109110 lock_groups .add ('default' )
110111 if dev :
@@ -138,22 +139,22 @@ def __call__(self, *, # type:ignore[override]
138139 frozenset (lock_groups ))
139140
140141 def _make_bom (self , root_c : Optional ['Component' ],
141- locker : 'NameDict' , use_groups : FrozenSet [str ]) -> 'Bom' :
142+ locker : 'NameDict' , use_groups : frozenset [str ]) -> 'Bom' :
142143 self ._logger .debug ('use_groups: %r' , use_groups )
143144
144145 bom = make_bom ()
145146 bom .metadata .component = root_c
146147 self ._logger .debug ('root-component: %r' , root_c )
147148
148149 meta : NameDict = locker [self .__LOCKFILE_META ]
149- source_urls : Dict [str , str ] = {
150+ source_urls : dict [str , str ] = {
150151 source ['name' ]: redact_auth_from_url (source ['url' ]).rstrip ('/' )
151152 for source in meta .get ('sources' , ())
152153 }
153154 if self ._pypi_url is not None :
154155 source_urls ['pypi' ] = redact_auth_from_url (self ._pypi_url ).rstrip ('/' )
155156
156- all_components : Dict [str , Component ] = {}
157+ all_components : dict [str , Component ] = {}
157158 if root_c :
158159 # root for possible self-installs
159160 all_components [normalize_packagename (root_c .name )] = root_c
@@ -218,7 +219,7 @@ def __is_local(self, data: 'NameDict') -> bool:
218219 see https://pip.pypa.io/en/latest/topics/vcs-support/#vcs-support
219220 """
220221
221- def __package_vcs (self , data : 'NameDict' ) -> Optional [Tuple [str , str ]]:
222+ def __package_vcs (self , data : 'NameDict' ) -> Optional [tuple [str , str ]]:
222223 for vct in self .__VCS_TYPES :
223224 if vct in data :
224225 url : str = data [vct ]
@@ -227,7 +228,7 @@ def __package_vcs(self, data: 'NameDict') -> Optional[Tuple[str, str]]:
227228 return vct , url [:hash_pos ] if hash_pos >= 0 else url
228229 return None
229230
230- def __make_extrefs (self , name : str , data : 'NameDict' , source_urls : Dict [str , str ]
231+ def __make_extrefs (self , name : str , data : 'NameDict' , source_urls : dict [str , str ]
231232 ) -> Generator ['ExternalReference' , None , None ]:
232233 hashes = (HashType .from_composite_str (package_hash )
233234 for package_hash
@@ -267,7 +268,7 @@ def __make_extrefs(self, name: str, data: 'NameDict', source_urls: Dict[str, str
267268 except (InvalidUriException , UnknownHashTypeException , KeyError ) as error : # pragma: nocover
268269 self ._logger .debug ('skipped dist-extRef for: %r' , name , exc_info = error )
269270
270- def __purl_qualifiers4lock (self , data : 'NameDict' , sourcees : Dict [str , str ]) -> 'NameDict' :
271+ def __purl_qualifiers4lock (self , data : 'NameDict' , sourcees : dict [str , str ]) -> 'NameDict' :
271272 # see https://github.com/package-url/purl-spec/blob/master/PURL-SPECIFICATION.rst
272273 qs = {}
273274 vcs_source = self .__package_vcs (data )
0 commit comments