@@ -418,6 +418,43 @@ def _getpackage_metadata(self, module):
418418 requires = package_data .get_all ("Requires-Dist" )
419419 else :
420420 requires = None
421+ # Use classifier if no license
422+ if metadata .get ("License" ) is not None :
423+ if metadata ["License" ] == "UNKNOWN" :
424+ metadata ["License" ] = None
425+ elif "see license" in metadata ["License" ].lower ():
426+ # If license has text similar to 'see license file', reset
427+ metadata ["License" ] = None
428+ if metadata .get ("License" ) is None and package_metadata .get ("Classifier" ) is not None :
429+ for i in package_data .get_all ("Classifier" ):
430+ if i .startswith ("License" ):
431+ # Extract license from classifier
432+ license_name = i .split ("::" )[- 1 ].strip ()
433+ if metadata .get ("License" ) is None :
434+ metadata ["License" ] = license_name
435+ else :
436+ metadata ["License" ] = f'{ metadata ["License" ]} AND { license_name } '
437+ # Extract dependencies (if any)
438+ if package_metadata .get ("Requires-Dist" ):
439+ requires = package_metadata .get ("Requires-Dist" )
440+ else :
441+ requires = None
442+ # Extract dependencies (if any)
443+ if package_metadata .get ("Requires-External" ):
444+ requires = package_metadata .get ("Requires-external" )
445+ else :
446+ requires = None
447+ # Extract dependencies (if any)
448+ if package_metadata .get ("Requires" ):
449+ requires = package_metadata .get ("Requires" )
450+ else :
451+ requires = None
452+ # Extract dependencies (if any)
453+ if package_metadata .get ("Requires-python" ):
454+ requires = package_metadata .get ("Requires-python" )
455+ else :
456+ requires = None
457+ # Extract dependencies (if any)
421458
422459 if requires is not None :
423460 # Find dependent packages
0 commit comments