@@ -47,7 +47,7 @@ def normalize(name):
47
47
return re .sub (r"[-_.]+" , "-" , name ).lower ()
48
48
49
49
50
- def get_package_metadata (database , name ):
50
+ def get_package_metadata (database , name , gotoWWW = False ):
51
51
"""Extract infos (description, url) from the local database"""
52
52
# Note: we could use the PyPI database but this has been written on
53
53
# machine which is not connected to the internet
@@ -78,6 +78,18 @@ def get_package_metadata(database, name):
78
78
metadata (name )['Summary' ]+ '\n ' ).splitlines ()[0 ]
79
79
except :
80
80
pass
81
+ if my_metadata ['description' ] == '' and gotoWWW :
82
+ from winpython import utils
83
+ dir_path = os .path .dirname (sys .executable )
84
+ this = normalize (name )
85
+ pip_ask = 'pip search ' + this
86
+ try :
87
+ pip_res = (utils .exec_shell_cmd (pip_ask , dir_path )+ '\n ' ).splitlines ()
88
+ pip_filter = [l for l in pip_res if this + " (" == l [:len (this )+ 2 ]]+ ['' ]
89
+ pip_desc = (pip_filter [0 ][len (this )+ 1 :]).split (" -" , 1 )[1 ]
90
+ my_metadata ['description' ] = '**' + pip_desc
91
+ except :
92
+ pass
81
93
return my_metadata
82
94
83
95
@@ -131,7 +143,7 @@ def extract_optional_infos(self):
131
143
"""Extract package optional infos (description, url)
132
144
from the package database"""
133
145
metadata = get_package_metadata (
134
- 'packages.ini' , self .name
146
+ 'packages.ini' , self .name , True
135
147
)
136
148
for key , value in list (metadata .items ()):
137
149
setattr (self , key , value )
0 commit comments