@@ -68,7 +68,7 @@ def __init__(self, stac_file, version="master"):
6868
6969 self .stac_version = version
7070 self .stac_file = stac_file .strip ()
71- self .dirpath = ""
71+ self .dirpath = ''
7272 self .fetch_specs (self .stac_version )
7373 self .fpath = Path (stac_file )
7474 self .message = {}
@@ -89,6 +89,9 @@ def fetch_specs(self, version):
8989 catalog_key = "catalog-{}" .format (self .stac_version )
9090
9191 if item_key in cache and catalog_key in cache :
92+ self .geojson_resolver = RefResolver (
93+ base_uri = "file://{}/" .format (self .dirpath ), referrer = "geojson.json"
94+ )
9295 return cache [item_key ], cache [geojson_key ], cache [catalog_key ]
9396
9497 # need to make a temp local file for geojson.
@@ -140,19 +143,21 @@ def validate_stac(self, stac_file, schema):
140143 # See https://github.com/Julian/jsonschema/issues/313
141144 # See https://github.com/Julian/jsonschema/issues/98
142145 try :
143- geojson_resolver = cache ["geojson_resolver" ]
146+ self .geojson_resolver = RefResolver (
147+ base_uri = "file://{}/" .format (cache ["geojson_resolver" ]), referrer = "geojson.json"
148+ )
144149 validate (stac_file , stac_schema , resolver = self .geojson_resolver )
145150 self .message ["valid_stac" ] = True
146151 except Exception as error :
147152 self .message ["valid_stac" ] = False
148- self .message ["error " ] = f"{ error .args } "
153+ self .message ["error_message " ] = f"{ error .args } "
149154 except ValidationError as error :
150155 self .message ["valid_stac" ] = False
151- self .message ["error " ] = f"{ error .message } of { list (error .path )} "
156+ self .message ["error_message " ] = f"{ error .message } of { list (error .path )} "
152157
153158 except Exception as error :
154159 self .message ["valid_stac" ] = False
155- self .message ["error " ] = f"{ error } "
160+ self .message ["error_message " ] = f"{ error } "
156161
157162 async def _validate_child (self , child_url , messages ):
158163 stac = StacValidate (child_url .replace ("///" , "//" ), self .stac_version )
@@ -161,8 +166,7 @@ async def _validate_child(self, child_url, messages):
161166 messages .append (stac .message )
162167
163168 if "error_type" in stac .message :
164- stac .message .pop ("error_type" , None )
165- stac .status .pop ("error_type" , None )
169+ pass
166170 else :
167171 self .status ["catalogs" ]["valid" ] += stac .status ["catalogs" ]["valid" ]
168172 self .status ["catalogs" ]["invalid" ] += stac .status ["catalogs" ]["invalid" ]
@@ -221,13 +225,13 @@ async def run(self):
221225 except JSONDecodeError as e :
222226 self .message ["valid_stac" ] = False
223227 self .message ["error_type" ] = "InvalidJSON"
224- self .message ["error " ] = f"{ self .stac_file } is not Valid JSON"
228+ self .message ["error_message " ] = f"{ self .stac_file } is not Valid JSON"
225229 self .status = self .message
226230 # return json.dumps(self.message)
227231 except FileNotFoundError as e :
228232 self .message ["valid_stac" ] = False
229233 self .message ["error_type" ] = "FileNotFoundError"
230- self .message ["error " ] = f"{ self .stac_file } cannot be found"
234+ self .message ["error_message " ] = f"{ self .stac_file } cannot be found"
231235 self .status = self .message
232236
233237 # Check STAC Type
@@ -243,7 +247,7 @@ async def run(self):
243247 else :
244248 self .status ["catalogs" ]["invalid" ] += 1
245249 self .message ["children" ] = await self .validate_catalog_contents ()
246- elif (self .stac_file ) is dict and (
250+ elif type (self .stac_file ) is dict and any (
247251 field in Collections_Fields for field in self .stac_file .keys ()
248252 ):
249253 # Congratulations, It's a Collection!
@@ -259,8 +263,7 @@ async def run(self):
259263 self .status ["collections" ]["invalid" ] += 1
260264 self .message ["children" ] = await self .validate_catalog_contents ()
261265 elif "error_type" in self .message :
262- self .message .pop ("error_type" , None )
263- self .status .pop ("error_type" , None )
266+ pass
264267
265268 else :
266269 # Congratulations, It's an Item!
0 commit comments