33import  re 
44from  typing  import  List 
55
6- import  pkg_resources 
6+ from   packaging . requirements   import  Requirement 
77import  requests 
88from  packaging .specifiers  import  Specifier , Version 
99
@@ -111,12 +111,11 @@ def safe_parse_requirements(req):
111111            """ 
112112            This helper function yields one valid requirement line at a time 
113113            """ 
114-             parsed  =  pkg_resources .parse_requirements (req )
115-             while  True :
114+             for  req_line  in  req :
115+                 if  not  req_line .strip ():
116+                     continue 
116117                try :
117-                     yield  next (parsed )
118-                 except  StopIteration :
119-                     break 
118+                     yield  Requirement (req_line )
120119                except  Exception  as  e :
121120                    log .error (
122121                        f"Error when parsing requirements, received error { str (e )}  
@@ -130,7 +129,7 @@ def safe_parse_requirements(req):
130129                    continue 
131130
132131                versions  =  get_matched_versions (
133-                     find_all_versions (requirement .project_name ),
132+                     find_all_versions (requirement .name ),
134133                    (
135134                        requirement .url 
136135                        if  requirement .url 
@@ -140,7 +139,7 @@ def safe_parse_requirements(req):
140139
141140                if  len (versions ) ==  0 :
142141                    log .error (
143-                         f"Package/Version { requirement .project_name } \n " 
142+                         f"Package/Version { requirement .name } \n " 
144143                    )
145144                    continue 
146145
@@ -165,13 +164,13 @@ def safe_parse_requirements(req):
165164                # find the dep with the same name or create a new one 
166165                dep  =  next (
167166                    filter (
168-                         lambda  d : d .name  ==  requirement .project_name ,
167+                         lambda  d : d .name  ==  requirement .name ,
169168                        dependencies ,
170169                    ),
171170                    None ,
172171                )
173172                if  not  dep :
174-                     dep  =  Dependency (name = requirement .project_name , versions = set ())
173+                     dep  =  Dependency (name = requirement .name , versions = set ())
175174                    dependencies .append (dep )
176175
177176                dep .versions .update (dep_versions )
0 commit comments