3
3
import logging
4
4
from hydra_agent .hydra_graph import InitialGraph
5
5
import urllib .request
6
+ from urllib .parse import urljoin
6
7
import json
7
8
from hydra_python_core import doc_maker
8
9
from urllib .error import URLError , HTTPError
@@ -29,18 +30,17 @@ def load_data(self, url):
29
30
:return: loaded data
30
31
"""
31
32
try :
32
- response = urllib .request .urlopen (url )
33
+ with urllib .request .urlopen (url ) as response :
34
+ return json .loads (response .read ().decode ('utf-8' ))
33
35
except HTTPError as e :
34
- logger .info ('Error code: ' , e .code )
36
+ logger .error ('Error Code: {}' . format ( e .code ) )
35
37
return RequestError ("error" )
36
38
except URLError as e :
37
- logger .info ('Reason: ' , e .reason )
39
+ logger .error ('Reason: {}' . format ( e .reason ) )
38
40
return RequestError ("error" )
39
41
except ValueError as e :
40
- logger .info ( "value error:" , e )
42
+ logger .error ( "Value Error: {}" . format ( e ) )
41
43
return RequestError ("error" )
42
- else :
43
- return json .loads (response .read ().decode ('utf-8' ))
44
44
45
45
def show_data (self , get_data ):
46
46
"""
@@ -685,7 +685,9 @@ def main():
685
685
if url == "exit" :
686
686
print ("exit..." )
687
687
return 0
688
- apidoc = handle_data .load_data (url + "/vocab" )
688
+ url = url .rstrip ('/' ) + '/'
689
+ url = urljoin (url , 'vocab' )
690
+ apidoc = handle_data .load_data (url )
689
691
else :
690
692
break
691
693
return query (apidoc , url )
0 commit comments