28
28
from argparse import ArgumentParser
29
29
from winpython import py3compat
30
30
31
-
31
+ # import information reader
32
+ # importlib_metadata before Python 3.8
33
+ try :
34
+ from importlib import metadata as metadata # Python-3.8
35
+ metadata = metadata .metadata
36
+ except :
37
+ try :
38
+ from importlib_metadata import metadata # <Python-3.8
39
+ except :
40
+ metadata = None # nothing available
41
+
32
42
# Workaround for installing PyVISA on Windows from source:
33
43
os .environ ['HOME' ] = os .environ ['USERPROFILE' ]
34
44
@@ -43,11 +53,11 @@ def get_package_metadata(database, name):
43
53
# machine which is not connected to the internet
44
54
db = cp .ConfigParser ()
45
55
db .readfp (open (osp .join (DATA_PATH , database )))
46
- metadata = dict (
56
+ my_metadata = dict (
47
57
description = '' ,
48
58
url = 'https://pypi.org/project/' + name ,
49
59
)
50
- for key in metadata :
60
+ for key in my_metadata :
51
61
name1 = name .lower ()
52
62
# wheel replace '-' per '_' in key
53
63
for name2 in (
@@ -58,11 +68,17 @@ def get_package_metadata(database, name):
58
68
normalize (name ),
59
69
):
60
70
try :
61
- metadata [key ] = db .get (name2 , key )
71
+ my_metadata [key ] = db .get (name2 , key )
62
72
break
63
73
except (cp .NoSectionError , cp .NoOptionError ):
64
74
pass
65
- return metadata
75
+ if my_metadata .get ('description' ) == '' and metadata : # nothing in package.ini
76
+ try :
77
+ my_metadata ['description' ]= (
78
+ metadata (name )['Summary' ]+ '\n ' ).splitlines ()[0 ]
79
+ except :
80
+ pass
81
+ return my_metadata
66
82
67
83
68
84
class BasePackage (object ):
0 commit comments