|
37 | 37 | from fastapi_versioning import VersionedFastAPI, version |
38 | 38 | from loguru import logger |
39 | 39 | from nginx_parser import parse_nginx_file |
40 | | -from pydantic import BaseModel |
| 40 | +from pydantic import BaseModel, Field |
41 | 41 | from uvicorn import Config, Server |
42 | 42 |
|
43 | 43 | SERVICE_NAME = "helper" |
@@ -95,14 +95,14 @@ class ServiceMetadata(BaseModel): |
95 | 95 | company: str |
96 | 96 | version: str |
97 | 97 | webpage: str |
98 | | - route: Optional[str] |
99 | | - new_page: Optional[bool] |
100 | | - extra_query: Optional[str] |
101 | | - avoid_iframes: Optional[bool] |
| 98 | + route: Optional[str] = Field(default=None) |
| 99 | + new_page: Optional[bool] = Field(default=None) |
| 100 | + extra_query: Optional[str] = Field(default=None) |
| 101 | + avoid_iframes: Optional[bool] = Field(default=None) |
102 | 102 | api: str |
103 | | - sanitized_name: Optional[str] |
104 | | - works_in_relative_paths: Optional[bool] |
105 | | - extras: Optional[Dict[str, str]] |
| 103 | + sanitized_name: Optional[str] = Field(default=None) |
| 104 | + works_in_relative_paths: Optional[bool] = Field(default=None) |
| 105 | + extras: Optional[Dict[str, str]] = Field(default=None) |
106 | 106 |
|
107 | 107 |
|
108 | 108 | class ServiceInfo(BaseModel): |
@@ -319,7 +319,7 @@ def detect_service(port: int) -> ServiceInfo: |
319 | 319 | response_as_json = response.as_json |
320 | 320 | if response.status == http.client.OK and response_as_json is not None and isinstance(response_as_json, dict): |
321 | 321 | try: |
322 | | - info.metadata = ServiceMetadata.parse_obj(response_as_json) |
| 322 | + info.metadata = ServiceMetadata.model_validate(response_as_json) |
323 | 323 | info.metadata.sanitized_name = re.sub(r"[^a-z0-9]", "", info.metadata.name.lower()) |
324 | 324 | except Exception as e: |
325 | 325 | logger.warning(f"Failed parsing the received JSON as ServiceMetadata object: {e}") |
|
0 commit comments