Skip to content

Commit

Permalink
fix git precommit
Browse files Browse the repository at this point in the history
  • Loading branch information
vvmruder committed Sep 6, 2024
1 parent ad1e99a commit db41799
Showing 1 changed file with 45 additions and 169 deletions.
214 changes: 45 additions & 169 deletions src/qgis_server_light/interface/job.py
Original file line number Diff line number Diff line change
@@ -1,60 +1,30 @@
import inspect
import logging
from dataclasses import dataclass, field
from typing import List, Tuple, Any
from dataclasses import dataclass
from dataclasses import field
from typing import Any
from typing import List

from qgis_server_light.interface.qgis import Raster, Vector
from qgis_server_light.interface.qgis import Custom
from qgis_server_light.interface.qgis import Raster
from qgis_server_light.interface.qgis import Vector

log = logging.getLogger(__name__)


@dataclass
class AbstractWmsParams:
BBOX: str = field(
metadata={
"type": "Element",
"required": True
}
)
CRS: str = field(
metadata={
"type": "Element",
"required": True
}
)
WIDTH: str = field(
metadata={
"type": "Element",
"required": True
}
)
HEIGHT: str = field(
metadata={
"type": "Element",
"required": True
}
)
BBOX: str = field(metadata={"type": "Element", "required": True})
CRS: str = field(metadata={"type": "Element", "required": True})
WIDTH: str = field(metadata={"type": "Element", "required": True})
HEIGHT: str = field(metadata={"type": "Element", "required": True})
# optional parameters
DPI: str = field(
default=None,
metadata={
"type": "Element",
"required": False
}
)
DPI: str = field(default=None, metadata={"type": "Element", "required": False})
FORMAT_OPTIONS: str = field(
default=None,
metadata={
"type": "Element",
"required": False
}
default=None, metadata={"type": "Element", "required": False}
)
STYLES: str = field(
default_factory=list,
metadata={
"type": "Element",
"required": False
}
default_factory=list, metadata={"type": "Element", "required": False}
)

@property
Expand All @@ -68,84 +38,44 @@ def dpi(self) -> int | None:

@property
def bbox(self) -> List[str]:
return self.BBOX.split(',')
return self.BBOX.split(",")

@classmethod
def from_overloaded_dict(cls, params: dict):
return cls(**{
k: v for k, v in params.items()
if k in inspect.signature(cls).parameters
})
return cls(
**{
k: v
for k, v in params.items()
if k in inspect.signature(cls).parameters
}
)


@dataclass(kw_only=True)
class WmsGetMapParams(AbstractWmsParams):
"""Represents query parameters from the original WMS request"""

LAYERS: str = field(
metadata={
"type": "Element",
"required": True
}
)
LAYERS: str = field(metadata={"type": "Element", "required": True})

# mime type of the requested image
FORMAT: str = field(
default="image/png",
metadata={
"type": "Element",
"required": True
}
default="image/png", metadata={"type": "Element", "required": True}
)

@property
def layers(self) -> List[str]:
return self.LAYERS.split(',')
return self.LAYERS.split(",")


class WmsGetFeatureInfoParams(AbstractWmsParams):
X: str = field(
default=None,
metadata={
"type": "Element",
"required": True
}
)
Y: str = field(
default=None,
metadata={
"type": "Element",
"required": True
}
)
I: str = field(
default=None,
metadata={
"type": "Element",
"required": True
}
)
J: str = field(
default=None,
metadata={
"type": "Element",
"required": True
}
)
INFO_FORMAT: str = field(
metadata={
"type": "Element",
"required": True
}
)
X: str = field(default=None, metadata={"type": "Element", "required": True})
Y: str = field(default=None, metadata={"type": "Element", "required": True})
I: str = field(default=None, metadata={"type": "Element", "required": True})
J: str = field(default=None, metadata={"type": "Element", "required": True})
INFO_FORMAT: str = field(metadata={"type": "Element", "required": True})

# mime type, only application/json supported
QUERY_LAYERS: str = field(
metadata={
"type": "Element",
"required": True
}
)
QUERY_LAYERS: str = field(metadata={"type": "Element", "required": True})

def __post_init__(self):
x = int(self.I or self.X)
Expand All @@ -171,38 +101,22 @@ def query_layers(self):


class QslAbstractJob:
svg_paths: List[str] = field(
metadata={
"type": "Element",
"required": True
}
)
svg_paths: List[str] = field(metadata={"type": "Element", "required": True})


@dataclass
class QslGetMapJob(QslAbstractJob):
"""A job to be rendered as an image"""

service_params: WmsGetMapParams = field(
metadata={
"type": "Element",
"required": True
}
metadata={"type": "Element", "required": True}
)

raster_layers: List[Raster] = field(
metadata={
"type": "Element",
"required": True
}
)
raster_layers: List[Raster] = field(metadata={"type": "Element", "required": True})

vector_layers: List[Vector] = field(
metadata={
"type": "Element",
"required": True
}
)
vector_layers: List[Vector] = field(metadata={"type": "Element", "required": True})

custom_layers: List[Custom] = field(metadata={"type": "Element", "required": True})

def get_layer_by_name(self, name: str) -> Raster | Vector:
name = name.lower()
Expand All @@ -218,10 +132,7 @@ class QslGetFeatureInfoJob(QslAbstractJob):
"""A job to extract feature info"""

service_params: WmsGetFeatureInfoParams = field(
metadata={
"type": "Element",
"required": True
}
metadata={"type": "Element", "required": True}
)


Expand All @@ -232,61 +143,26 @@ class QslLegendJob(QslAbstractJob):

@dataclass
class JobResult:
data: Any = field(
metadata={
"type": "Element",
"required": True
}
)
content_type: str = field(
metadata={
"type": "Element",
"required": True
}
)
data: Any = field(metadata={"type": "Element", "required": True})
content_type: str = field(metadata={"type": "Element", "required": True})


@dataclass
class AbstractJobRunnerInfo:
id: str = field(
metadata={
"type": "Element",
"required": True
}
)
type: str = field(
metadata={
"type": "Element",
"required": True
}
)
id: str = field(metadata={"type": "Element", "required": True})
type: str = field(metadata={"type": "Element", "required": True})


@dataclass
class JobRunnerInfoQslGetMapJob(AbstractJobRunnerInfo):
job: QslGetMapJob = field(
metadata={
"type": "Element",
"required": True
}
)
job: QslGetMapJob = field(metadata={"type": "Element", "required": True})


@dataclass
class JobRunnerInfoQslGetFeatureInfoJob(AbstractJobRunnerInfo):
job: QslGetFeatureInfoJob = field(
metadata={
"type": "Element",
"required": True
}
)
job: QslGetFeatureInfoJob = field(metadata={"type": "Element", "required": True})


@dataclass
class JobRunnerInfoQslLegendJob(AbstractJobRunnerInfo):
job: QslLegendJob = field(
metadata={
"type": "Element",
"required": True
}
)
job: QslLegendJob = field(metadata={"type": "Element", "required": True})

0 comments on commit db41799

Please sign in to comment.