@@ -160,10 +160,9 @@ async def _validate_child(self, child_url, messages):
160160
161161 messages .append (stac .message )
162162
163- if "valid_json" in stac .message and not stac .message ["valid_json" ]:
164- stac .message .pop ("valid_json" , None )
165- stac .status .pop ("valid_json" , None )
166- pass
163+ if "error_type" in stac .message :
164+ stac .message .pop ("error_type" , None )
165+ stac .status .pop ("error_type" , None )
167166 else :
168167 self .status ["catalogs" ]["valid" ] += stac .status ["catalogs" ]["valid" ]
169168 self .status ["catalogs" ]["invalid" ] += stac .status ["catalogs" ]["invalid" ]
@@ -221,10 +220,15 @@ async def run(self):
221220 self .stac_file = data
222221 except JSONDecodeError as e :
223222 self .message ["valid_stac" ] = False
224- self .message ["valid_json " ] = False
223+ self .message ["error_type " ] = "InvalidJSON"
225224 self .message ["error" ] = f"{ self .stac_file } is not Valid JSON"
226225 self .status = self .message
227- return json .dumps (self .message )
226+ # return json.dumps(self.message)
227+ except FileNotFoundError as e :
228+ self .message ["valid_stac" ] = False
229+ self .message ["error_type" ] = "FileNotFoundError"
230+ self .message ["error" ] = f"{ self .stac_file } cannot be found"
231+ self .status = self .message
228232
229233 # Check STAC Type
230234 if "catalog" in self .fpath .stem :
@@ -239,7 +243,9 @@ async def run(self):
239243 else :
240244 self .status ["catalogs" ]["invalid" ] += 1
241245 self .message ["children" ] = await self .validate_catalog_contents ()
242- elif any (field in Collections_Fields for field in self .stac_file .keys ()):
246+ elif (self .stac_file ) is dict and (
247+ field in Collections_Fields for field in self .stac_file .keys ()
248+ ):
243249 # Congratulations, It's a Collection!
244250 # Collections will validate as catalog.
245251 self .message ["asset_type" ] = "collection"
@@ -252,6 +258,10 @@ async def run(self):
252258 else :
253259 self .status ["collections" ]["invalid" ] += 1
254260 self .message ["children" ] = await self .validate_catalog_contents ()
261+ elif "error_type" in self .message :
262+ self .message .pop ("error_type" , None )
263+ self .status .pop ("error_type" , None )
264+
255265 else :
256266 # Congratulations, It's an Item!
257267 self .message ["asset_type" ] = "item"
0 commit comments