@@ -13,13 +13,17 @@ class MetaKGParser:
1313 get_url_timeout = 60
1414 metakg_errors = None
1515
16- def get_non_TRAPI_metadatas (self , data = None , extra_data = None , url = None ): # *** TEST THIS FOR BREAK POINTS ***
16+ def get_non_TRAPI_metadatas (self , data = None , extra_data = None , url = None ):
17+ # Error Handling
18+ if not data and not url :
19+ raise ValueError ("Either data or url must be provided." )
1720 if data :
1821 parser = API (smartapi_doc = data )
1922 elif url :
2023 parser = API (url = url )
21- else :
22- return [] # **** ERROR HANDLE THIS ****
24+ else :
25+ raise ValueError ("Error getting metadata from provided data or url." )
26+
2327 mkg = self .extract_metakgedges (parser .metadata ["operations" ], extra_data = extra_data )
2428 no_nodes = len ({x ["subject" ] for x in mkg } | {x ["object" ] for x in mkg })
2529 no_edges = len ({x ["predicate" ] for x in mkg })
@@ -28,12 +32,14 @@ def get_non_TRAPI_metadatas(self, data=None, extra_data=None, url=None): # *** T
2832
2933 def get_TRAPI_metadatas (self , data = None , extra_data = None , url = None ):
3034 ops = []
35+ if not data and not url :
36+ raise ValueError ("Either data or url must be provided." )
3137 if data :
3238 metadata_list = self .get_TRAPI_with_metakg_endpoint (data = data )
3339 elif url :
3440 metadata_list = self .get_TRAPI_with_metakg_endpoint (url = url )
3541 else :
36- return [] # **** ERROR HANDLE THIS ****
42+ raise ValueError ( "Error getting metadata from provided data or url." )
3743
3844 count_metadata_list = len (metadata_list )
3945 self .metakg_errors = {}
@@ -45,21 +51,24 @@ def get_TRAPI_metadatas(self, data=None, extra_data=None, url=None):
4551
4652 return self .extract_metakgedges (ops , extra_data = extra_data )
4753
48- def get_TRAPI_with_metakg_endpoint (self , data = None , url = None ): # TEST THIS FOR BREAK POINTS
49- # Use the URL if provided, otherwise fall back to the 'data' argument
50- if data :
51- parser = API (data )
52- elif url :
53- parser = API (url = url )
54-
55- metadatas = []
56- parser = API (data )
57- metadata = parser .metadata
58- _paths = metadata .get ("paths" , {})
59- _team = metadata .get ("x-translator" , {}).get ("team" )
60- if "/meta_knowledge_graph" in _paths and "/query" in _paths and _team :
61- metadatas .append (metadata )
62- return metadatas
54+ def get_TRAPI_with_metakg_endpoint (self , data = None , url = None ):
55+ if not data and not url :
56+ raise ValueError ("Either data or url must be provided." )
57+ try :
58+ # Initialize API with either data or URL
59+ parser = API (smartapi_doc = data ) if data else API (url = url )
60+ metadata = parser .metadata
61+ _paths = metadata .get ("paths" , {})
62+ _team = metadata .get ("x-translator" , {}).get ("team" )
63+
64+ # Check for required TRAPI paths
65+ if "/meta_knowledge_graph" in _paths and "/query" in _paths and _team :
66+ print ("TRAPI metadata found." )
67+ return [metadata ]
68+ else :
69+ return []
70+ except Exception as e :
71+ raise ValueError (f"Error getting TRAPI metadata: { e } " )
6372
6473 def construct_query_url (self , server_url ):
6574 if server_url .endswith ("/" ):
0 commit comments