Refactor codebase following Clean Code principles and add 229 tests
- Extract helpers to reduce function sizes (listing_tasks, app.py, query.py, listing_fetcher) - Replace nonlocal mutations with _PipelineState dataclass in listing_tasks - Fix bugs: isinstance→equality check in repository, verify_exp for OIDC tokens - Consolidate duplicate filter methods in listing_repository - Move hardcoded config to env vars with backward-compatible defaults - Simplify CLI decorator to auto-build QueryParameters - Add deprecation docstring to data_access.py - Test count: 158 → 387 (all passing)
This commit is contained in:
parent
7e05b3c971
commit
150342bb9e
48 changed files with 5029 additions and 990 deletions
|
|
@ -1,3 +1,4 @@
|
|||
import dataclasses
|
||||
import json
|
||||
from typing import List
|
||||
|
||||
|
|
@ -7,20 +8,25 @@ from rec import routing
|
|||
|
||||
class RouteSerializer:
|
||||
@staticmethod
|
||||
def serialize(route): ...
|
||||
def serialize(routing_info: dict[DestinationMode, list[Route]]) -> str:
|
||||
return json.dumps(
|
||||
{
|
||||
json.dumps(dataclasses.asdict(destination_mode)): [
|
||||
json.dumps(dataclasses.asdict(route)) for route in routes
|
||||
]
|
||||
for destination_mode, routes in routing_info.items()
|
||||
}
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def deserialize(route_data_json: str) -> dict[DestinationMode, List[Route]]:
|
||||
json_data = json.loads(route_data_json)
|
||||
destimation_routes = {}
|
||||
destination_routes = {}
|
||||
for destination_mode_str, routes_json in json_data.items():
|
||||
parsed_destination = json.loads(destination_mode_str)
|
||||
destination_mode = DestinationMode(
|
||||
destination_address=json.loads(destination_mode_str)[
|
||||
"destination_address"
|
||||
],
|
||||
travel_mode=routing.TravelMode(
|
||||
json.loads(destination_mode_str)["travel_mode"]
|
||||
),
|
||||
destination_address=parsed_destination["destination_address"],
|
||||
travel_mode=routing.TravelMode(parsed_destination["travel_mode"]),
|
||||
)
|
||||
parsed_route = json.loads(routes_json[0])
|
||||
routes = [
|
||||
|
|
@ -37,5 +43,5 @@ class RouteSerializer:
|
|||
duration_s=int(parsed_route["duration_s"]),
|
||||
)
|
||||
]
|
||||
destimation_routes[destination_mode] = routes
|
||||
return destimation_routes
|
||||
destination_routes[destination_mode] = routes
|
||||
return destination_routes
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue