1414from licensecheck .types import JOINS , UNKNOWN , PackageInfo , ucstr
1515
1616
17- def _pkgMetadataGet (pkgMetadata : metadata .PackageMetadata , key : str ) -> str :
17+ def _pkgMetadataGet (pkgMetadata : metadata .PackageMetadata | dict [ str , Any ] , key : str ) -> str :
1818 """Get a string from a key from pkgMetadata."""
19- value = pkgMetadata .json . get (key , UNKNOWN )
20- if isinstance (value , str ):
21- return value
22- return JOINS . join ( value )
19+ value = pkgMetadata .get (key , UNKNOWN )
20+ if not isinstance (value , str ):
21+ value = JOINS . join ( value )
22+ return value or UNKNOWN
2323
2424
2525def getPackageInfoLocal (requirement : ucstr ) -> PackageInfo :
@@ -35,11 +35,11 @@ def getPackageInfoLocal(requirement: ucstr) -> PackageInfo:
3535 pkgMetadata = metadata .metadata (requirement )
3636 lice = licenseFromClassifierlist (pkgMetadata .get_all ("Classifier" ))
3737 if lice == UNKNOWN :
38- lice = _pkgMetadataGet (pkgMetadata , "license " )
39- homePage = pkgMetadata . get ( "Home-page" , UNKNOWN )
40- author = _pkgMetadataGet (pkgMetadata , "author " )
41- name = _pkgMetadataGet (pkgMetadata , "name " )
42- version = _pkgMetadataGet (pkgMetadata , "version " )
38+ lice = _pkgMetadataGet (pkgMetadata , "License " )
39+ homePage = _pkgMetadataGet ( pkgMetadata , "Home-page" )
40+ author = _pkgMetadataGet (pkgMetadata , "Author " )
41+ name = _pkgMetadataGet (pkgMetadata , "Name " )
42+ version = _pkgMetadataGet (pkgMetadata , "Version " )
4343 size = 0
4444 packagePaths = metadata .Distribution .from_name (requirement ).files
4545 if packagePaths is not None :
@@ -70,7 +70,7 @@ def getPackageInfoPypi(requirement: ucstr) -> PackageInfo:
7070 request = session .get (f"https://pypi.org/pypi/{ requirement } /json" , timeout = 60 )
7171 response = request .json ()
7272 try :
73- info = response [ "info" ]
73+ info = response . get ( "info" , {})
7474 licenseClassifier = licenseFromClassifierlist (info ["classifiers" ])
7575
7676 size = - 1
@@ -79,10 +79,10 @@ def getPackageInfoPypi(requirement: ucstr) -> PackageInfo:
7979 size = int (urls [- 1 ]["size" ])
8080
8181 return PackageInfo (
82- name = info [ "name" ] ,
83- version = info [ "version" ] ,
84- homePage = info [ "home_page" ] ,
85- author = info [ "author" ] ,
82+ name = _pkgMetadataGet ( info , "name" ) ,
83+ version = _pkgMetadataGet ( info , "version" ) ,
84+ homePage = _pkgMetadataGet ( info , "home_page" ) ,
85+ author = _pkgMetadataGet ( info , "author" ) ,
8686 size = size ,
8787 license = ucstr (
8888 licenseClassifier if licenseClassifier != UNKNOWN else info .get ("license" , UNKNOWN )
0 commit comments