From b7585ed38125fb72d2f1c59b363537ad09a601c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Cant=C3=B9?= Date: Tue, 17 Sep 2024 13:35:00 +0200 Subject: [PATCH] improve source generation --- metadata_catalogue/maps/libs/maplibre.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/metadata_catalogue/maps/libs/maplibre.py b/metadata_catalogue/maps/libs/maplibre.py index bc51e44..75c94b5 100644 --- a/metadata_catalogue/maps/libs/maplibre.py +++ b/metadata_catalogue/maps/libs/maplibre.py @@ -1,8 +1,10 @@ +import logging +import traceback from typing import Dict, List, Literal, Union from django.contrib.gis.db.models import Extent from django.db.models import Q -from pydantic import BaseModel, Field, JsonValue +from pydantic import BaseModel, Field, JsonValue, ValidationError from metadata_catalogue.maps.models import Map, Source @@ -167,13 +169,17 @@ def map_to_style(map: Map, request) -> MapStyle: maplibre_source = None if source: - maplibre_source = MaplibreSource( - id=source.id, - type=source.type, - url=source.get_source_url(request), - attribution=source.attribution, + kwargs = { + "id": source.id, + "type": source.type, + "url": source.get_source_url(request), + "attribution": source.attribution, **source.extra, - ) + } + try: + maplibre_source = MaplibreSource(**kwargs) + except ValidationError: + logging.warning(f"Error while creating source for {layer.source_id}: {traceback.format_exc()}") # These arguments can be overrided extra_args = {