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 }  , 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