@@ -75,10 +75,10 @@ def create_virtualenv(self):
75
75
install_cmd_list = []
76
76
for manifest_file in manifest_files :
77
77
if os .path .exists (manifest_file ):
78
- if manifest_file == 'setup.py' :
79
- install_cmd_list .append ("pip install ." )
80
- elif manifest_file == 'requirements.txt' :
78
+ if manifest_file == 'requirements.txt' :
81
79
install_cmd_list .append ("pip install -r requirements.txt" )
80
+ else :
81
+ install_cmd_list .append ("pip install ." )
82
82
else :
83
83
manifest_files .remove (manifest_file )
84
84
self .set_manifest_file (manifest_files )
@@ -237,7 +237,7 @@ def start_pip_licenses(self):
237
237
install_deptree_command = f"pip install { pipdeptree } "
238
238
command_list .append (install_deptree_command )
239
239
uninstall_deptree_command = f"pip uninstall -y { pipdeptree } "
240
- pipdeptree_command = f"{ pipdeptree } --local-only -- json-tree -e pipdeptree > { self .tmp_deptree_file } "
240
+ pipdeptree_command = f"{ pipdeptree } --json-tree -e ' pipdeptree,pip,wheel,setuptools' > { self .tmp_deptree_file } "
241
241
command_list .append (pipdeptree_command )
242
242
command_list .append (uninstall_deptree_command )
243
243
command_list .append (deactivate_command )
@@ -247,8 +247,16 @@ def start_pip_licenses(self):
247
247
cmd_ret = subprocess .call (command , shell = True )
248
248
if cmd_ret == 0 :
249
249
self .append_input_package_list_file (self .tmp_file_name )
250
+ with open (self .tmp_file_name , 'r' , encoding = 'utf-8' ) as json_f :
251
+ json_data = json .load (json_f )
252
+ for d in json_data :
253
+ self .total_dep_list .append (re .sub (r"[-_.]+" , "-" , d ['Name' ]).lower ())
250
254
if len (pip_license_pkg_list ) != 0 :
251
255
self .append_input_package_list_file (self .tmp_pip_license_info_file_name )
256
+ with open (self .tmp_pip_license_info_file_name , 'r' , encoding = 'utf-8' ) as json_f :
257
+ json_data = json .load (json_f )
258
+ for d in json_data :
259
+ self .total_dep_list .append (re .sub (r"[-_.]+" , "-" , d ['Name' ]).lower ())
252
260
else :
253
261
logger .error (f"Failed to run command: { command } " )
254
262
ret = False
@@ -287,7 +295,9 @@ def parse_oss_information(self, f_name):
287
295
288
296
comment_list = []
289
297
deps_list = []
290
- if self .direct_dep_list :
298
+ if oss_init_name == self .package_name :
299
+ comment_list .append ('root package' )
300
+ elif self .direct_dep and len (self .direct_dep_list ) > 0 :
291
301
if f'{ oss_init_name } ({ oss_version } )' in self .direct_dep_list :
292
302
comment_list .append ('direct' )
293
303
else :
@@ -312,12 +322,12 @@ def get_dependencies(self, dependencies, package):
312
322
deps = 'dependencies'
313
323
installed_ver = 'installed_version'
314
324
315
- pkg_name = package [package_name ]
325
+ pkg_name = re . sub ( r"[-_.]+" , "-" , package [package_name ]). lower ()
316
326
pkg_ver = package [installed_ver ]
317
327
dependency_list = package [deps ]
318
328
dependencies [f"{ pkg_name } ({ pkg_ver } )" ] = []
319
329
for dependency in dependency_list :
320
- dep_name = dependency [package_name ]
330
+ dep_name = re . sub ( r"[-_.]+" , "-" , dependency [package_name ]). lower ()
321
331
dep_version = dependency [installed_ver ]
322
332
dependencies [f"{ pkg_name } ({ pkg_ver } )" ].append (f"{ dep_name } ({ dep_version } )" )
323
333
if dependency [deps ] != []:
@@ -332,8 +342,20 @@ def parse_direct_dependencies(self):
332
342
333
343
with open (self .tmp_deptree_file , 'r' , encoding = 'utf8' ) as f :
334
344
json_f = json .load (f )
335
- for package in json_f :
336
- self .direct_dep_list .append (f"{ package ['package_name' ]} ({ package ['installed_version' ]} )" )
345
+ root_package = json_f
346
+ if ('pyproject.toml' in self .manifest_file_name ) or ('setup.py' in self .manifest_file_name ):
347
+ direct_without_system_package = 0
348
+ for package in root_package :
349
+ package_name = re .sub (r"[-_.]+" , "-" , package ['package_name' ]).lower ()
350
+ if package_name in self .total_dep_list :
351
+ direct_without_system_package += 1
352
+ if direct_without_system_package == 1 :
353
+ self .package_name = re .sub (r"[-_.]+" , "-" , json_f [0 ]['package_name' ]).lower ()
354
+ root_package = json_f [0 ]['dependencies' ]
355
+
356
+ for package in root_package :
357
+ package_name = re .sub (r"[-_.]+" , "-" , package ['package_name' ]).lower ()
358
+ self .direct_dep_list .append (f"{ package_name } ({ package ['installed_version' ]} )" )
337
359
if package ['dependencies' ] == []:
338
360
continue
339
361
self .relation_tree = self .get_dependencies (self .relation_tree , package )
0 commit comments