Changed classes' attribute names in locations.py to more pythonic

This commit is contained in:
T-BENZIN 2023-06-04 21:43:27 +05:00
parent 9335b782c2
commit ee2b18bdb5

View File

@ -1,25 +1,25 @@
from pydantic import BaseModel
from pydantic import BaseModel, Field
import json
class RegionNames(BaseModel):
fullName: str
shortName: str
displayName: str
primaryDisplayName: str
secondaryDisplayName: str
lastSearchName: str
full_name: str = Field(alias='fullName')
short_name: str = Field(alias='shortName')
display_name: str = Field(alias='displayName')
primary_display_name: str = Field(alias='primaryDisplayName')
secondary_display_name: str = Field(alias='secondaryDisplayName')
last_search_name: str = Field(alias='lastSearchName')
class EssId(BaseModel):
sourceName: str
sourceId: int
source_name: str = Field(alias='sourceName')
source_id: int = Field(alias='sourceId')
class Country(BaseModel):
name: str
isoCode2: str
isoCode3: str
iso_code2: str = Field(alias='isoCode2')
iso_code3: str = Field(alias='isoCode3')
class HierarchyInfo(BaseModel):
@ -27,25 +27,25 @@ class HierarchyInfo(BaseModel):
class Coordinates(BaseModel):
lat: float
long: float
latitude: float = Field(alias='lat')
longitude: float = Field(alias='long')
class GaiaRegionResult(BaseModel):
index: int
gaiaId: int
gaia_id: int = Field(alias='gaiaId')
type: str
regionNames: RegionNames
essId: EssId
region_names: RegionNames = Field(alias='regionNames')
ess_id: EssId = Field(alias='essId')
coordinates: Coordinates
hierarchyInfo: HierarchyInfo
hierarchy_info: HierarchyInfo = Field(alias='hierarchyInfo')
class SearchResults(BaseModel):
q: str
rid: str
rc: str
sr: list[GaiaRegionResult]
query: str = Field(alias='q')
request_id: str = Field(alias='rid')
request_status: str = Field(alias='rc')
search_results: list[GaiaRegionResult] = Field(alias='sr')
if __name__ == "__main__":
@ -53,5 +53,5 @@ if __name__ == "__main__":
data = json.load(json_file)
results = SearchResults(**data)
print('\n'.join(
[result.regionNames.fullName for result in results.sr if result.type in ('CITY', 'NEIGHBORHOOD')])
[result.region_names.full_name for result in results.search_results if result.type in ('CITY', 'NEIGHBORHOOD')])
)