fix(B05): 경유점 번호가 비면 경로 탐색이 터지던 문제
화면에서 막 찍은 경유점은 order가 아직 없어 None으로 온다. 정렬 키가
x.get("order", 0)이라 키가 있고 값만 None인 경우를 걸러내지 못해
TypeError: '<' not supported between instances of 'NoneType' and 'NoneType'로
경로 탐색 전체가 실패했다(서버 로그 확인, project_id=fc86f247).
None을 0으로 눕힌다 — 파이썬 정렬이 안정적이라 번호가 없는 점들은 받은 순서를
유지한다. 같은 패턴을 쓰던 능선/계곡 탐색기(RidgeValley)도 함께 고쳤다.
ruff format·check 통과.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -529,7 +529,8 @@ def solve_ridge_valley_route(
|
||||
|
||||
bp = points_data.get("bp")
|
||||
ep = points_data.get("ep")
|
||||
cp_list = sorted(points_data.get("cp", []), key=lambda x: x.get("order", 0))
|
||||
# 번호가 비어 오는 경유점 처리는 `solve_optimal_route`와 같다 — None 정렬로 터지지 않게.
|
||||
cp_list = sorted(points_data.get("cp", []), key=lambda item: item.get("order") or 0)
|
||||
ap_list = points_data.get("ap", [])
|
||||
fp_list = points_data.get("fp", [])
|
||||
if not bp or not ep:
|
||||
|
||||
@@ -300,7 +300,9 @@ def solve_optimal_route(
|
||||
|
||||
bp = points_data.get("bp")
|
||||
ep = points_data.get("ep")
|
||||
cp_list = sorted(points_data.get("cp", []), key=lambda x: x.get("order", 0))
|
||||
# 경유점 번호는 비어 올 수 있다(화면에서 막 찍은 점은 아직 번호가 없다). `None`끼리는
|
||||
# 비교가 안 돼 정렬이 터지므로 0으로 눕힌다 — 정렬이 안정적이라 받은 순서가 유지된다.
|
||||
cp_list = sorted(points_data.get("cp", []), key=lambda item: item.get("order") or 0)
|
||||
ap_list = points_data.get("ap", [])
|
||||
fp_list = points_data.get("fp", [])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user